package com.itmoll.yinlianpay.until;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* SHA256加密
*
*/
public class SHA256Util {
public static final String KEY_ALGORITHM = "SHA-256";
public static final String ENCODE = "UTF-8";
/**
* 利用java原生的类实现SHA256加密
*
* @param str 参数拼接的字符串
* @return
*/
public static String sign(String str) {
try {
MessageDigest messageDigest = MessageDigest.getInstance(KEY_ALGORITHM);
messageDigest.update(str.getBytes(ENCODE));
byte[] bytes = messageDigest.digest();
StringBuffer stringBuffer = new StringBuffer();
String temp = null;
// 将byte转为16进制
for (int i = 0; i < bytes.length; i++) {
temp = Integer.toHexString(bytes[i] & 0xFF);
if (temp.length() == 1) {
// 1得到一位的进行补0操作
stringBuffer.append("0");
}
stringBuffer.append(temp);
}
return stringBuffer.toString();
} catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
e.printStackTrace();
}
return null;
}
/**
* 验证签名
* @param str 待签名字符串
* @param sign 待验证签名
* @return true通过,false不通过
*/
public static boolean verifySign(String str, String sign) throws Exception {
boolean flag = false;
String tmpSign = sign(str.trim());
flag = tmpSign.equals(sign.trim());
return flag;
}
}
SHA-256加密
于 2020-12-25 10:33:54 首次发布
本文深入探讨了SHA-256加密算法的工作原理,包括其在信息安全中的重要应用,如数字签名、哈希函数和数据完整性验证。通过实例解析了如何使用SHA-256对数据进行加密,并讨论了其与MD5等其他哈希算法的差异及安全性优势。

被折叠的 条评论
为什么被折叠?



