美文网首页
消息摘要算法之SHA

消息摘要算法之SHA

作者: junjun2018 | 来源:发表于2018-08-20 17:04 被阅读0次

安全散列算法。
SHA是在MD4的基础上发展的,是MD的继承者。
JDK提供了实现。

package com.jun.SHA;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class JDKsha {
    private static String src = "ysj";

    public static void main(String[] args) {
        jdkSHA();
    }

    public static void jdkSHA() {
        try {
            MessageDigest sha = MessageDigest.getInstance("SHA");
            sha.update(src.getBytes());
            System.out.println(bytes2hex(sha.digest()));
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
    }

    //将字节数组转换成16进制方法
    public static String bytes2hex(byte[] bytes) {
        final String HEX = "0123456789abcdef";
        StringBuilder sb = new StringBuilder(bytes.length * 2);
        for (byte b : bytes) {
            // 取出这个字节的高4位,然后与0x0f与运算,得到一个0-15之间的数据,通过HEX.charAt(0-15)即为16进制数
            sb.append(HEX.charAt((b >> 4) & 0x0f));
            // 取出这个字节的低位,与0x0f与运算,得到一个0-15之间的数据,通过HEX.charAt(0-15)即为16进制数
            sb.append(HEX.charAt(b & 0x0f));
        }

        return sb.toString();
    }
}
//结果
d0ff2c5d160fa0aacd5796fb6513097fc2352079

相关文章

网友评论

      本文标题:消息摘要算法之SHA

      本文链接:https://www.haomeiwen.com/subject/lbmliftx.html