常见的安全算法

数字摘要算法

数字摘要也称为消息摘要,它是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash函数对消息进行计算而产生。因此,如果要验证消息是否被改变,只能对这个消息进行Hash,把新摘要和旧摘要进行对比。不同的明文摘要成密文,其结果总是不同的(相同的),而相同的明文摘要结果必定一致。所以摘要字符串相当于验证明文的指纹了。
MD5即Message Digest Algorithm 5,是数字摘要算法的一种实现,摘要长度为128位。MD5由MD4,MD3,MD2改进而来,主要增强算法复杂度和不可逆性,该算法因为稳定快速被广泛使用,目前主流的编程语言普通都已有MD5算法实现。
SHA的全程是Secure Hash Algorithm,即安全散列算法,SHA-1是目前常用版本。SHA-1是基于MD4的,SHA-1算法生成的摘要信息的长度为160位,与MD5相比由于生成的摘要信息更长,运算的过程更复杂,更为安全,但是运行速度更慢
数据摘要算法可用于验证数据完整性,也可以用在数据库中保存以Hash码的方式保存用户密码。(在后者应用中,注意不要告诉用户输错的究竟是用户名还是密码。就像通用的提示那样,始终显示:“无效的用户名或密码。”就行了。这样可以防止攻击者在不知道密码的情况下枚举出有效的用户名。)
那么如何破解哈希?破解哈希加密最简单的方法是尝试猜测密码,哈希每个猜测的密码,并对比猜测密码的哈希值是否等于被破解的哈希值。如果相等,则猜中。常用的方法是字典攻击和暴力攻击。
字典攻击使用包含单词、短语、常用密码和其他可能用做密码的字符串的字典文件。对文件中的每个词都进行哈希加密,将这些哈希值和要破解的密码哈希值比较。如果它们相同,这个词就是密码。字典文件是通过大段文本中提取的单词构成,甚至还包括一些数据库中真实的密码。(简而言之是猜日常短语)
暴力攻击是对于给定的密码长度,尝试每一种可能的字符组合。这种方式会消耗大量的计算,也是破解哈希加密效率最低的办法,但最终会找出正确的密码

对称加密

对称加密算法是应用较早的加密算法,对称加密算法使用的密钥只有一个,发送和接送双方都使用这个密钥对数据进行加密和解密,这就要求加密和解密双方事先都必须知道加密的密钥
DES算法属于对称加密算法,明文按照64位进行分组,密钥长64位,但实际上只有56位参与DES运算(第8,16,24,32,40,48,56,64是校验位,使得每个密钥都有奇数个1),分组后的明文和56位的密钥按为替代或交换的方法形成密文。由于计算机运算能力的增强,原版DES的密钥长度变得容易被暴力破解,因此演变出了3DES算法。3DES使用3条56位的密钥对数据进行三次加密。
AES算法是DES的加强版,有三个密钥长度: 128,192,256位,比DES算法的加密强度更高

非对称加密

非对称加密算法又称为公开密钥加密算法,它需要两个密钥,一个成为公钥(public key),另一个是私钥(private key)。公钥与私钥需要配对使用,如果用公钥对数据进行加密,只有用对应的私钥才能进行解密,而如果用使用私钥对数据进行加密,那么只有对应的公钥才能解密。因为加密和解密使用不同密钥,所以称为非对称加密。HTTPS就是利用了非对称加密来传递共享密钥
RSA是目前最有影响力的非对称加密算法,RSA算法基于一个理论事实:将两个大素数相乘十分容易,但反过来想要对乘积进行因式分解却非常困难,因此可以将乘积公开做为加密密钥。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值