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
  • asp之家 软件编程 m.aspxhome.com