美文网首页
[ 摘要 ] MD5 - 拿来校验软件篡改如何

[ 摘要 ] MD5 - 拿来校验软件篡改如何

作者: 一个好汉 | 来源:发表于2021-08-30 22:34 被阅读0次

你好 哈希算法

哈希算法(Hash)又称摘要算法(Digest)

作用

对任意一组输入数据进行计算,得到一个固定长度的输出摘要

最重要的特点
  • 相同的输入一定得到相同的输出
  • 不同的输入大概率得到不同的输出
目的

为了验证原始数据是否被篡改

经典用途
  1. 校验登录密码
  2. 校验下载文件是否被篡改
常见算法

常用的哈希算法有:

算法 输出长度(位) 输出长度(字节)
MD5 128 bits 16 bytes
SHA-1 160 bits 20 bytes
RipeMD-160 160 bits 20 bytes
SHA-256 256 bits 32 bytes
SHA-512 512 bits 64 bytes
md5 coding
public static void md5encode() throws NoSuchAlgorithmException {
        // 创建一个MessageDigest实例:
        MessageDigest md = MessageDigest.getInstance("MD5");
        // 反复调用update输入数据:
        md.update("Hello".getBytes(StandardCharsets.UTF_8));
        md.update("World".getBytes(StandardCharsets.UTF_8));
        byte[] result = md.digest(); // 16 bytes: 68e109f0f40ca72a15e05cc22786f8e6
        System.out.println(new BigInteger(1, result).toString(16));
    }

结果得到

68e109f0f40ca72a15e05cc22786f8e6

MD5只得16字节 输出长度较短,短时间内破解是可能的,目前已经不推荐使用

推荐使用同样是哈希算法的 SHA-1 SHA-256 SHA-512

上文的代码中只需要将"MD5" 换做其他算法 即可完成哈希算法的转换

相关文章

网友评论

      本文标题:[ 摘要 ] MD5 - 拿来校验软件篡改如何

      本文链接:https://www.haomeiwen.com/subject/elvwiltx.html