jdk原生的加密方式MessageDigest

package xmodule.test;

import java.security.MessageDigest;

public class JiaMIJieMIDemo {
public static void main(String[] args) {
// MD5 SHA-1 SHA-256
String signString = “123qwe”;
String type = “SHA-1”;
String result = getEncryptResult(signString, type);
System.out.println(“采用” + type + “加密之后的串为:” + result);
type = “MD5”;
result = getEncryptResult(signString, type);
System.out.println(“采用” + type + “加密之后的串为:” + result);
type = “SHA-256”;
result = getEncryptResult(signString, type);
System.out.println(“采用” + type + “加密之后的串为:” + result);
type = “SHA-384”;
result = getEncryptResult(signString, type);
System.out.println(“采用” + type + “加密之后的串为:” + result);
}

public static String getEncryptResult(String signString, String type) {
    try {
        // 返回实现指定摘要算法(type)的 MessageDigest 对象。
        MessageDigest md = MessageDigest.getInstance(type);
        byte[] srcStr = signString.getBytes();
        // 通过使用 update 方法处理数据,使指定的 byte数组更新摘要
        md.update(srcStr);
        // 获得密文完成哈希计算,产生128 位的长整数
        byte[] digest = md.digest();

        String desStr = bytes2Hex(digest);

        return desStr;

    } catch (Exception e) {
        System.out.println("签名失败!");
        e.printStackTrace();
    }
    return null;
}

public static String bytes2Hex(byte[] bts) {
    String des = "";
    String tmp = null;
    for (int i = 0; i < bts.length; i++) {
        tmp = (Integer.toHexString(bts[i] & 0xFF));
        if (tmp.length() == 1) {
            des += "0";
        }
        des += tmp;
    }
    return des;
}

}

猜你喜欢

转载自blog.csdn.net/yk614294861/article/details/78924848