消息摘要算法之SHA

2018-08-20  本文已影响0人  junjun2018

安全散列算法。
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
上一篇 下一篇

猜你喜欢

热点阅读