标签:java String instance -- SHA nameBytes 256 加密算法
java的 SHA-256加密,几乎与 MD5加密的写法一样:
import java.security.MessageDigest;
import java.util.Arrays;
public class Hello {
public static void main(String[] args) {
String name = "哈喽啊";
try {
MessageDigest instance = MessageDigest.getInstance("SHA-256");
// md5的加盐
instance.update("xxx".getBytes());
// md5加密的字节数组
byte[] nameBytes = instance.digest(name.getBytes());
System.out.println(Arrays.toString(nameBytes));// 打印结果:[-16, 34, -105, -18, -53, -91, 98, 48, -40, 115, 11, 25, 22, 7, -108, 5, 24, 51, -38, 36, 17, 94, -3, -102, -6, -76, -61, -77, -29, 4, 107, 84]
String res = new String(nameBytes);
System.out.println(res);
//创建一个可变字符串 sb
StringBuilder sb = new StringBuilder();
for (int i=0;i<nameBytes.length;i++){
int val = nameBytes[i] & 255; //将负数转换成整数
if (val < 16) {
sb.append("0");
}
// 将val转换成16进制,再添加到sb这个可变的字符串中
sb.append(Integer.toHexString(val));
}
//再将可变的字符串sb ,转换成不可变的字符串
String hexData = sb.toString();
System.out.println(hexData); // 打印结果:f02297eecba56230d8730b19160794051833da24115efd9afab4c3b3e3046b54
}catch (Exception e){
System.out.println(e);
}
}
}
标签:java,String,instance,--,SHA,nameBytes,256,加密算法 来源: https://www.cnblogs.com/zhiqianggege/p/16211985.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。