MD5加密,SHA256加密小结

0 阅读2分钟

1.使用RSA 加密解密 www.cnblogs.com/hongdanni/p…

2.SHA256(以及所有SHA系列算法)本身就是一种“单向散列函数”(One-way Hash Function),从数学原理上就不支持解密

SHA256的正确用途是什么?

Java(或其他任何语言)实现的SHA256算法,都是对这个数学公式的具体编码。只要算法标准统一,结果就一样。但没有任何官方或非官方的“解密”函数,因为从算法设计之初就没打算让你逆向。

  • 1.密码存储(最常用):

你不存储用户的明文密码,而是存它的SHA256值。

  • 2.数据完整性校验:

下载大文件时,对比官方提供的SHA256值,确保文件在传输中没有被篡改。

MD5 能“被破解”,不是因为它能被解密,而是因为它算得太快、输出太短,导致黑客可以轻松建立“密码-哈希值”对照表来撞库。

    1. MD5 的“破解”本质是“碰撞”与“查表” 理论层面(数学上不可逆) :MD5 的输出只有 128 位(32 个十六进制字符),而输入可以是无限长的。这意味着有无穷多个不同的原文,能计算出同一个 MD5 值(这叫“碰撞”)。比如,A 和 B 都可能算出一个同样的值(只是举例)。所以,你无法确定一个哈希值背后“唯一”的原文。
    1. 实际破解(彩虹表与撞库) :网上所谓的“MD5 解密网站”,其实是一个巨大的键值对数据库(彩虹表) 。它们预先计算了海量常见密码(如 123456adminpassword)的 MD5 值。当你输入 e10adc3949ba59abbe56e057f20f883e 时,它们直接在库里查,发现对应 123456,就“破解”了。