安全算法
来源:互联网 发布:java编程基础培训学校 编辑:程序博客网 时间:2024/06/05 04:25
转载地址:http://blog.csdn.net/hjs218/article/details/53726065
安全传输除了可以使用https,还可通过安全算法实现。常用的安全算法主要包括数字摘要、对称加密算法、非对称加密算法、信息编码等。
一、数字摘要
数字摘要也称为消息摘要,它是唯一对应一个消息或文本的固定长度的值,它由一个单向Hash函数对消息进行计算而产生。消息在传递中改变了,接受方
对收到的消息采用相同的Hash重新计算,产生的摘要跟原摘要进行比较,即可知道消息是否被恶意篡改了,所以消息摘要能够验证消息的完整性。常用的数字
摘要有MD5,SHA.
1、MD5
MD5即Message Digest Algorithm 5,是数字摘要的一种实现,用于确保信息传输完整性和一致性,摘要长度为128位。MD5由MD4、MD3、MD2改进而来,
主要增强了算法复杂度和不可逆性。C#的MD5算法的参考(引用msdn):
2、SHA
SHA是全称是Secure Hash Algorithm,即安全散列算法。1993年,安全散列算法(SHA)由美国国家标准和技术协会(NIST)提出,并作为联邦
信息处理标准(FIPS PUB 180)公布,1995年又发布了一个修订版FIPS PUB 180-1,通常称之为SHA-1,并被广泛使用。SHA-1的摘要信息长度为
160位,由于生成的摘要信息更长,运算的 过程更加复杂,在相同的硬件上,运算速度比MD5更慢,也更为安全。C#版SHA1算法参考
二、对称加密
对称加密算法是应用较早的加密算法,加解密使用相同的密钥,对称加密过程如下所示:
对称加密算法特点是算法公开、计算量小、加密效率高,使用长密钥时难破解性,但安全性由于依赖于密钥,泄露密钥就意味着任何人都可以对加密的
密文进行解密,因 此密钥的保护对于加密信息是否安全至关重要。常用的对称加密算法包括DES算法、3DES算法、AES算法等。
由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解,因此演变出了3DES算法,3DES是DES向AES过渡的加密算法。
1、DES
加密算法如:
解密算法如:非对称加密算法又称为公开密钥加密算法,两个密钥,一个公钥,另一个私钥。公钥与私钥需要配对使用,如果用公钥对数据进行加密,只有对应
的私钥才能进行解密,而如果使用私钥对数据进行加密,那只有对应的公钥才能解密。由于加密和解密使用的是两个不同的密钥,所以这种算法称
为非对称加密算法。具体过程如下图所示:
非对称加密算法特点:对称加密算法只有一种密钥,并且是非公开的,若要解密则需要对方知道密钥,所以保证其安全性就是保证密钥的安全,而
一旦密钥在传输过程中泄露加密信息就不再安全。而非对称加密算法包含两种密钥,其中一个是公开的,这样不需要像对称加密算法那样,需要传
输密钥给对方进行数据加密了,大大提高了加密算法的安全性。非对称加密算法能够保证,即使在获知公钥、加密算法和加密源代码的情况下,也
无法获知公钥对应的私钥,因此也无法对公钥加密的密文进行解密。
由于非对称加密算法的复杂性,使得其加密解密速度远没有对称加密解密那么快,为了解决该问题,一般都是使用对称和非对称结合使用的办法,
优缺点互补,达到时间和安全的平衡:对称加密较长的文件,然后用非对称加密算法给文件密钥加密,解决了对称加密算法密钥分发问题。
当前使用最为广泛的非对称加密算法是RSA算法。
- 安全算法
- 安全算法
- java安全,RSA算法。
- 安全哈希算法
- 银行家安全算法
- web 安全登录算法
- 什么是DES安全算法
- 安全算法梳理
- 常见安全算法
- 常用的安全算法
- 常见的安全算法
- 常见的安全算法
- 安全算法梳理
- MD5安全算法
- SHA安全算法
- SHA安全散列算法
- lock-free线程安全算法
- SHA:安全散列算法
- HDU 6093 Rikka with Number(康托展开)
- mysql删除语句大全(上)
- Python基础3
- 词向量随记1
- MySQL中PROCEDURE ANALYSE
- 安全算法
- 在mybatis中关于标签mapper错的解决原因及方案
- 通俗易懂版_安装Mysql
- 用html、jquery、php编写新闻后台管理页面,动态添加新闻数据并实现数据的增删改查功能
- redhat Linux6下搭建LAMP
- tomcat发布web service教程
- Educational Codeforces Round 28 A. Curriculum Vitae(读懂题意后的暴力水题)
- MessageDigest 类的用法(MD5加密)
- springboot 报错Field XXX required a bean of type XXX that could not be found.