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

2021-08-30  本文已影响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" 换做其他算法 即可完成哈希算法的转换

上一篇下一篇

猜你喜欢

热点阅读