创作人 Leo
编辑时间 Wed Jan 1,2020 at 09:28
MD5 SHA 摘要算法:
java 内部实现了这两个算法,
使用 MessageDigest.getInstance 工厂方法可以创建实例
签名后的返回值是二进制数据,需要自行转换成16进制值
例:
public static void testMd()
{
try {
//MessageDigest md = MessageDigest.getInstance("md5");
MessageDigest md = MessageDigest.getInstance("sha");
String str = "hello world";
byte[] bs = md.digest(str.getBytes());
String data = "" ;
for (int i = 0; i < bs.length; i++) {
int n = bs[i] & 0xff;
if(n<16){
data +=0 ;
}
data+=Integer.toString(n, 16).toUpperCase() ;
}
System.out.println(data);
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
// e.printStackTrace();
System.out.println(e.getMessage());
}
}
sha1 输出:
2AAE6C35C94FCFB415DBE95F408B9CE91EE846ED
消息签名
私钥签名,公钥校验