SHA算法简介

5 篇文章 0 订阅

SHA:Secure Hash Algorithm

安全散列算法




与MD5算法极为相似。

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


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


通常表示为40个十六进制数字。


例:

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


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值