Java-摘要算法

Java的摘要算法通过MessageDigest可使用。此 MessageDigest 类为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。信息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度的哈希值。

1.MD5

介绍

消息摘要是安全的单向哈希函数,它接收任意大小的数据,并输出固定长度的哈希值。

MD5算法具有以下特点:

1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。
2、容易计算:从原数据计算出MD5值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

使用示例

MessageDigest md = MessageDigest.getInstance("MD5");
String text = "12345688888888";
byte[] result = md.digest(text.getBytes());
String r = "";
for(int i=0; i<result.length; i++){
  //与0xFF做“&”运算,是因为byte转int,正数存储的二进制原码,负数存储的是二进制的补码。
  //补码是负数的绝对值反码加1。
  String hs = Integer.toHexString(result[i] & 0xFF);
  if(hs.length() == 1){
    r = r + "0" + hs;
  }else{
    r = r + hs;
  }
}
System.out.println(r);
System.out.println(r.toUpperCase());
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容