题主确定知道什么是 SHA-1 吗?
这不是加密算法,而是摘要(哈希)算法,国内经常把二者搞混。
区别就在于,加密算法可逆,即通过一定的计算,明文、密文可以互推;摘要算法不可逆,即原文计算后可以得到摘要,但根据摘要不可计算得原文(彩虹表并非“计算”所得)。
SHA1目前大家常用的场景有以下几种:
文件传输:文件加密传输给接收者,发送者给接收者SHA1码,验证传送的文件是否被篡改,如果你接收到的文件SHA1和发送者给你的一致,表示文件没有被篡改。
网站登录账号/密码加密:
用户在网站输入账号/密码后网站把用户输入的账号和密码通过SHA1加密后存储到DB,DB管理员看到账号密码只有一些字符串,即使是DB管理员也无法知道用户输入的账号密码是什么,对用户很安全。
用户端登录网站只要输入账号和密码后SHA1加密后和DB里面存储的SHA1去比对,如果比对一致就认证通过,否则就失败。
数字证书:
数字证书发布的证书也采用这种SHA1算法加密。不过证书加密现在采用更高的算法。
SHA家族的五个算法,分别是SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512,由美国国家安全局(NSA)所设计,并由美国国家标准与技术研究院(NIST)发布;是美国的政府标准。后四者有时并称为SHA-2。SHA-1在许多安全协定中广为使用,包括TLS和SSL、PGP、SSH、S/MIME和IPsec,曾被视为是MD5(更早之前被广为使用的杂凑函数)的后继者。但SHA-1的安全性如今被密码学家严重质疑;虽然至今尚未出现对SHA-2有效的攻击,它的算法跟SHA-1基本上仍然相似;因此有些人开始发展其他替代的杂凑算法。