guava:计算hash(md5,sha256,crc...)真是方便

Guava哈希工具类使用
本文介绍了一个方便实用的Guava哈希工具类,演示了如何使用该工具类进行MD5、SHA256、SHA512及CRC32的计算。通过简单的示例代码,展示了不同哈希算法的具体应用。

今天找到了guava计算md5的工具类,用起来真是很方便,返回结果可以用toString()转为String,也可以用asBytes()转为字节数组。
生成sha256,sha512等也是同样的用法,只要在Hashing类调用对应的方法返回HashFunction对象就可以,很方便。
示例代码如下:

package net.gdface.facelog.client;

import static org.junit.Assert.*;

import org.junit.Test;

import com.google.common.hash.Hashing;


public class HashTest {

	@Test
	public void test() {
		String input = "hello, world";
		// 计算MD5
		System.out.println(Hashing.md5().hashBytes(input.getBytes()).toString());
		// 计算sha256
		System.out.println(Hashing.sha256().hashBytes(input.getBytes()).toString());
		// 计算sha512
		System.out.println(Hashing.sha512().hashBytes(input.getBytes()).toString());
		// 计算crc32
		System.out.println(Hashing.crc32().hashBytes(input.getBytes()).toString());

		System.out.println(Hashing.md5().hashUnencodedChars(input).toString());

	}

}

### 解决Maven Gradle构建中`com.google.guava:guava:33.3.1-android`依赖无法解析问题 当遇到Gradle构建错误提示`Error:Could not resolve com.google.guava:guava:33.3.1-android`时,这通常意味着项目试图访问的特定版本的Guava库未能成功下载或存在兼容性问题。 #### 检查仓库配置 确认项目的根目录下的`build.gradle`文件中的repositories部分已正确配置。应至少包含Google's Maven repository和JCenter(尽管后者已被宣布弃用),以确保能够获取最新的依赖项: ```groovy allprojects { repositories { google() mavenCentral() // 推荐优先使用mavenCentral代替jcenter jcenter()// 可选 } } ``` #### 更新依赖管理插件 有时旧版的Gradle插件可能不支持最新版本的依赖包。因此建议更新至较新的稳定版本的Android Gradle Plugin以及Kotlin插件(如果适用)。对于GreenDAO而言,其对应的Gradle插件也应当保持同步升级[^1]。 #### 处理依赖冲突 多个模块间可能存在不同版本的Guava库相互竞争的情况。可以利用force参数强制指定所需版本,或者通过resolutionStrategy来统一协调所有子项目的依赖关系: ```groovy configurations.all { resolutionStrategy.eachDependency { DependencyResolveDetails details -> if (details.requested.group == 'com.google.guava') { details.useVersion "33.3.1-android" } } } ``` 此外,在某些情况下,其他第三方库内部也可能引入了较低版本的Guava作为传递依赖,从而引发冲突。此时可以通过排除不必要的传递依赖来解决问题[^4]: ```groovy implementation('some.other.library'){ exclude group:'com.google.guava', module:'guava' } ``` #### 清除缓存重试 本地Gradle缓存可能会保存有问题的jar文件副本,尝试清理后再重新执行构建操作往往能有效缓解此类异常状况: ```bash ./gradlew cleanBuildCache ./gradlew build --refresh-dependencies ``` 以上措施有助于解决因网络连接不佳、服务器端资源缺失或是复杂的多级依赖所造成的`com.google.guava:guava:33.3.1-android`不可达的问题[^2]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

10km

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值