MD5和SHA有什么区别?

MD5、SHA-1、SHA-256与SHA-512把输入转换为固定长度摘要。同样的文字和字节会得到同样的结果,修改一个空格也通常会使摘要明显不同。它们适合核对文本是否一致、比较调试样本或验证已有摘要值。页面对输入使用UTF-8,不自动去掉首尾空白,也不统一换行;输出可选择十六进制字母大小写。若本地程序的结果不同,应先检查编码、换行与是否包含字节序标记。

MD5与SHA-1存在已知碰撞风险,不适合需要抗攻击能力的新安全方案;较新的SHA算法也不是密码加密或密码存储的完整方案。密码存储需要专门的加盐、成本可调的算法,而消息身份验证还需要密钥与协议设计。这里的SHA工具使用浏览器Web Crypto,MD5由专门的摘要库计算。网站只计算文字摘要,不上传文件或寻找原文;摘要不可逆的性质也不能阻止对简单内容进行猜测,所以不要把一个可预测值的摘要视为秘密。

相关问题