/*
* 加密练习(一)
*/
String a="a"; //待加密串
try {
MessageDigest md=MessageDigest.getInstance("md5");//加密方式MD5,sha也行
md.update(a.getBytes()); //加密
byte[] b=md.digest(); //返回字节数组,{00000000,00000000,00000000,...}
StringBuffer sb=new StringBuffer();
StringBuffer sb2=new StringBuffer();
for(int i=0;i<b.length;i++){
int c=b[i]; //把字节转成int,里面会有负数
if(c<0){ //如果小于0
c+=256; //就加256,一个字节最大是256,加少了,可能还是负数,加多了也没卵用
}
sb.append(Integer.toHexString(c)); //再转成十六进制数,十六进制里有字母啊,看着很高大上
sb2.append(Integer.toHexString(0xff & b[i])); //跟上面是等价的,更简单的写法,0xff就是256的十六进制
}
System.out.println(sb.toString());
System.out.println(sb2.toString());
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
java加密 MessageDigest(一)
最新推荐文章于 2021-04-22 20:10:23 发布