软件编程
位置:首页>> 软件编程>> java编程>> Java sha1散列算法原理及代码实例

Java sha1散列算法原理及代码实例

作者:海绵般汲取  发布时间:2021-06-28 05:50:22 

标签:Java,sha1,散列,算法

直接调用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

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com