Java sha1散列算法原理及代码实例
作者:海绵般汲取 时间:2021-06-28 05:50:22
直接调用HashKit.sha1(String str)方法就可以了,,返回的是16进制的字符串长度是40,
也就是用md.digest()方法解析出来的字节数是160字节长度。
而MD5散列算法生成的字节数是128字节长度,返回的16进制的字符长度是32位
代码如下
public class HashKit {
private static final char[] HEX_DIGITS = "0123456789abcdef".toCharArray();
public static String sha1(String srcStr){
return hash("SHA-1", srcStr);
}
public static String hash(String algorithm, String srcStr) {
try {
MessageDigest md = MessageDigest.getInstance(algorithm);
byte[] bytes = md.digest(srcStr.getBytes("utf-8"));
return toHex(bytes);
}
catch (Exception e) {
throw new RuntimeException(e);
}
}
public static String toHex(byte[] bytes) {
StringBuilder ret = new StringBuilder(bytes.length * 2);
for (int i=0; i<bytes.length; i++) {
ret.append(HEX_DIGITS[(bytes[i] >> 4) & 0x0f]);
ret.append(HEX_DIGITS[bytes[i] & 0x0f]);
}
return ret.toString();
}
}
来源:https://www.cnblogs.com/gne-hwz/p/9549292.html
标签:Java,sha1,散列,算法
0
投稿
猜你喜欢
Spring Security认证提供程序示例详解
2022-11-07 18:06:40
Java回调函数与观察者模式实例代码
2023-11-16 17:30:11
C#基于OLEDB获取Excel文件表结构信息的方法
2022-03-06 07:29:44
Java动态代理四种实现方式详解
2022-03-12 02:16:38
Android 中 Tweened animation的实例详解
2022-12-12 15:28:06
maven报错:Failed to execute goal on project问题及解决
2021-09-30 09:58:36
Java 数据结构与算法系列精讲之栈
2021-06-11 09:00:51
Android开发之WebView组件的使用解析
2022-07-22 21:52:15
C# datagridview、datagrid、GridControl增加行号代码解析
2023-02-03 10:42:56
Spring Cloud Alibaba Nacos Config加载配置详解流程
2022-03-24 23:06:01
Android OkHttp实现全局过期token自动刷新示例
2023-01-24 10:31:57
Android Monkey压力测试详细介绍
2021-10-24 08:02:37
Android一行代码实现圆形头像
2022-02-23 02:00:25
spring boot+vue实现JSAPI微信支付的完整步骤
2023-07-31 13:39:26
eclipse导入appcompat项目报错解决办法
2021-11-10 14:25:57
Spring Boot与Spark、Cassandra系统集成开发示例
2021-06-03 13:40:51
JAVA遍历一个文件夹中的所有文件的小例子
2023-04-07 17:13:49
java的泛型你真的了解吗
2022-07-25 09:40:06
Maven+Tomcat8 实现自动化部署的方法
2023-01-03 06:44:20
Android如何快速集成腾讯Bugly
2021-11-26 00:52:26