Java|SHA算法简介

SHA:Secure Hash Algorithm
安全散列算法


Java|SHA算法简介
文章图片




与MD5算法极为相似。
长度不超过2^64位的字符串或二进制流,经过SHA-1编码后,生成一个160位的二进制串。


SHA-1算法也与MD5类似,都是把输入二进制串分成512位的块,把二进制串的位数存储在最后64位,二者之间填充为0,依次对每个块进行一些列高深的数学运算,最后得到一个160位的二进制串。


通常表示为40个十六进制数字。
【Java|SHA算法简介】

例:
SHA-1("")=da39a3ee5e6b4b0d3255bfef95601890afd80709
SHA-1("hello world!")=430ce34d020724ed75a196dfc2ad67c77772d169


SHA算法也是不可逆的。


从SHA-1的算法可以简单看出,SHA-1安全性比MD5稍高(160位VS128位),但算法需要时间SHA-1稍慢。


在Java中可以简单地通过引用commons-codec来取得sha-1。



import org.apache.commons.codec.digest.DigestUtils; public class SHA1Test { public static void main(String[] args) { String sha1 = DigestUtils.sha1Hex(""); System.out.println(": " + sha1); sha1 = DigestUtils.sha1Hex("hello world!"); System.out.println("hello world!: " + sha1); } }


参考: http://zh.wikipedia.org/wiki/SHA%E5%AE%B6%E6%97%8F


    推荐阅读