SHA安全算法
来源:互联网 发布:数据库关系 0 1 编辑:程序博客网 时间:2024/06/05 09:05
在1993年,安全散列算法(SHA)由美国国家标准和技术协会(NIST)提出,并作为联邦信息处理标准(FIPS PUB 180)公布;1995年又发布了一个修订版FIPS PUB 180-1,通常称之为SHA-1。SHA-1是基于MD4算法的,并且它的设计在很大程度上是模仿MD4的。现在已成为公认的最安全的散列算法之一,并被广泛使用。
原理
SHA-1是一种数据加密算法,该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。
单向散列函数的安全性在于其产生散列值的操作过程具有较强的单向性。如果在输入序列中嵌入密码,那么任何人在不知道密码的情况下都不能产生正确的散列值,从而保证了其安全性。SHA将输入流按照每块512位(64个字节)进行分块,并产生20个字节的被称为信息认证代码或信息摘要的输出。
该算法输入报文的长度不限,产生的输出是一个160位的报文摘要。输入是按512 位的分组进行处理的。SHA-1是不可逆的、防冲突,并具有良好的雪崩效应。
通过散列算法可实现数字签名实现,数字签名的原理是将要传送的明文通过一种函数运算(Hash)转换成报文摘要(不同的明文对应不同的报文摘要),报文摘要加密后与明文一起传送给接受方,接受方将接受的明文产生新的报文摘要与发送方的发来报文摘要解密比较,比较结果一致表示明文未被改动,如果不一致表示明文已被篡改。
由于计算出的摘要转换成字符串,可能会生成一些无法显示和网络无法传输的字符,因此,需要対生成的摘要字符串进行编码,常用的编码方式包括16进制编码和base64编码
原理
SHA-1是一种数据加密算法,该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小)密文,也可以简单的理解为取一串输入码(称为预映射或信息),并把它们转化为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。
单向散列函数的安全性在于其产生散列值的操作过程具有较强的单向性。如果在输入序列中嵌入密码,那么任何人在不知道密码的情况下都不能产生正确的散列值,从而保证了其安全性。SHA将输入流按照每块512位(64个字节)进行分块,并产生20个字节的被称为信息认证代码或信息摘要的输出。
该算法输入报文的长度不限,产生的输出是一个160位的报文摘要。输入是按512 位的分组进行处理的。SHA-1是不可逆的、防冲突,并具有良好的雪崩效应。
通过散列算法可实现数字签名实现,数字签名的原理是将要传送的明文通过一种函数运算(Hash)转换成报文摘要(不同的明文对应不同的报文摘要),报文摘要加密后与明文一起传送给接受方,接受方将接受的明文产生新的报文摘要与发送方的发来报文摘要解密比较,比较结果一致表示明文未被改动,如果不一致表示明文已被篡改。
MAC (信息认证代码)就是一个散列结果,其中部分输入信息是密码,只有知道这个密码的参与者才能再次计算和验证MAC码的合法性。
基于Java的SHA算法的使用
public static byte[] SHA(String content) throws Exception{ MessageDigest md = MessageDigest.getInstance("SHA-1"); byte[] bytes = md.digest(content.getBytes("utf-8")); return bytes; }
由于计算出的摘要转换成字符串,可能会生成一些无法显示和网络无法传输的字符,因此,需要対生成的摘要字符串进行编码,常用的编码方式包括16进制编码和base64编码
阅读全文
0 0
- SHA安全算法
- SHA安全散列算法
- SHA:安全散列算法
- 安全杂凑算法(SHA)
- SHA:安全散列算法 .
- java实现安全散列算法SHA
- SHA-2 安全散列算法2 算法详解
- 中国专家破解SHA-1,信息安全呼唤新算法
- Android数据加密之SHA安全散列算法
- 安全hash算法,sha-1的C++实现
- SHA算法
- SHA算法
- MD5消息摘要算法和SHA-1安全散列算法
- Java基础之加解密(三) SHA安全散列算法
- SHA-1算法使用
- MD5与SHA算法
- Java SHA-256算法
- Sha-1算法详解
- 神奇的快速幂算法!!
- 一次完整的HTTP事务是怎样一个过程?
- 只有输赢两种结果的游戏
- (java)纯代码用spring里集成的RabbitMQ实现一个简单的收发程序
- 找出两个链表的第一个公共节点
- SHA安全算法
- 图像识别常见的数据集
- c#获取数据库中某一行的数据
- Enable VT-x in your BIOS security settings (refer to document for your computer) 系统:win10 电脑: Leno
- redis集群所得
- Eclipse Java EE IDE 汉化后处理版怎样设置代码字体大小
- Servlet的相关介绍
- gcc -g option flag
- 诗歌十 寒窑赋(破窑赋)天有不测风云,人有旦夕祸福