常见加密算法(不可逆算法、非对称加密,对称加密)

一、概要

可逆
	对称加密
		1. DES(Data Encryption Standard):数据加密标准
		2. 3DES
		3. AES(Advanced Encryption Standard):高级加密标准
	非对称加密
		RSA
不可逆
	哈希HASH
		1.MD5加密
		2.MD5加“盐”
		3.SHA加密			
		4.HMAC加密

二、不可逆算法(哈希HASH)

1、MD5加密

MD5加密的特点

  • 不可逆运算
  • 对不同的数据加密的结果是定长的32位字符(不管文件多大都一样)
  • 对相同的数据加密,得到的结果是一样的(也就是复制)。
  • 抗修改性 : 信息“指纹”,对原数据进行任何改动,哪怕只修改一个字节,所得到的 MD5 值都有很大区别.
  • 弱抗碰撞 : 已知原数据和其 MD5 值,想找到一个具有相同 MD5 值的数据(即伪造数据)是非常困难的.
  • 强抗碰撞: 想找到两个不同数据,使他们具有相同的 MD5 值,是非常困难的

MD5 应用:

一致性验证:MD5将整个文件当做一个大文本信息,通过不可逆的字符串变换算法,产生一个唯一的MD5信息摘要,就像每个人都有自己独一无二的指纹,MD5对任何文件产生一个独一无二的数字指纹。

然而MD5加密其实是不安全的,目前互联网上就有很多md5破解网站。

2、MD5加“盐”

“盐”就是一串比较复杂的字符串。加盐的目的是加强加密的复杂度,这么破解起来就更加麻烦,当然这个“盐”越长越复杂,加密后破解起来就越麻烦。

加固定的“盐”还是有太多不安全的因素,“盐”有泄漏的风险。可以看出没有百分百的安全,只能达到相对安全(破解成本 > 破解利润),所以一些金融的app、网站等加密比较高。

3、SHA加密

安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准(Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。

SHA加密算法有三种:

  • SHA1
  • SHA256
  • SHA512

以SHA1为例,对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。在传输的过程中,数据很可能会发生变化,那么这时候就会产生不同的消息摘要。

SHA有如下特性

  • 不可以从消息摘要中复原信息
  • 两个不同的消息不会产生同样的消息摘要

4、HMAC加密

HMAC:给定一个密钥,对明文加密,做两次“散列”,得到的结果还是32为字符串。在实际开发中,密钥是服务器生成,客户端发送请求会拿到KEY。一个账号对应一个KEY

以注册为例:当用户把账号提交给服务器,服务器会验证账号的合法性,如果合法就会生成个KEY给客户端(这个KEY只有在注册的时候会出现一次,一个账号只对应一个KEY);客户端会用拿到的KEY给密码用HMAC方式加密(32位字符串)发给服务器,最终服务器会保存这个HMAC密码。这样就注册成功了!以后再登录就会服务器就会比对这个HMAC密码是否相等决定能否登录成功。

这样一来安全了很多,即使黑客拿到了客户KEY,也只能拿到一个用户的信息,也就是说只丢失了一个客户的信息。然而上面的加“盐”方式加密,如果“盐”泄漏了,那丢失的可是所有用户信息啊。安全性有了很大提升有木有!!!

但是这还是不够安全,还可以更加安全!

以登录为例:当用户点击登录时,会生成HMAC密码,然后用HMAC密码拼接上一个时间串(服务器当前时间,201801171755,只到分钟),然后一起MD5加密,最后客户端会把加上时间的HMAC值发给服务器;这时候服务器也会用已经存起来的HMAC密码拼接上一个时间串(服务器当前时间),然后一起MD5加密,最后用这个加密后的HMAC值和客户端发来的进行HMAC值对比,对此一样则登录成功!!!

三、可逆算法

1、对称加密

简介:

  • 对称加密算法又称传统加密算法
  • 加密和解密使用同一个密钥

加密过程:明文->密钥加密->密文,
解密过程:密文->密钥解密->明文。

示例:
密钥:X
加密算法:每个字符+X
明文:Hello
密钥为 1时加密结果:Ifmmp
密钥为 2时加密结果:Jgnnq

优缺点:

  • 算法公开,计算量小,加密速度快,加密效率高
  • 双方使用相同的钥匙,安全性得不到保证

注意事项:

  • 密钥的保密工作非常重要
  • 密钥要求定期更换

经典加密算法有三种

  • DES(Data Encryption Standard):数据加密标准(现在用的比较少,因为它的加密强度不够,能够暴力破解)
  • 3DES:原理和DES几乎是一样的,只是使用3个密钥,对相同的数据执行三次加密,增强加密强度。(缺点:要维护3个密钥,大大增加了维护成本)
  • AES(Advanced Encryption Standard):高级加密标准,目前美国国家安全局使用的,苹果的钥匙串访问采用的就AES加密。是现在公认的最安全的加密方式,是对称密钥加密中最流行的算法。

加密模式

  • ECB模式(默认):电码本模式 Electronic Codebook Book,就是每个块都是独立加密

  • CBC模式:密码分组链接模式 Cipher Block Chaining,使用一个密钥和一个初始化向量(IV)对数据执行加密转换

  • CTR模式:计算器模式 Counter

  • CFB模式:密码反馈模式 Cipher FeedBack

  • OFB模式:输出反馈模式 Output FeedBack

加密模式是加密过程对独立数据块的处理。对于较长的明文进行加密需要进行分块加密,在实际开发中,推荐使用CBC的,ECB的要少用。

2、非对称加密RSA

简介

  • 非对称加密算法又称现代加密算法。
  • 非对称加密是计算机通信安全的基石,保证了加密数据不会被破解。
  • 非对称加密算法需要两个密钥:公开密钥(publickey) 和私有密(privatekey)
  • 公开密钥和私有密钥是一对

如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密。
如果用私有密钥对数据进行加密,只有用对应的公开密钥才能解密。

特点:

  • 算法强度复杂,安全性依赖于算法与密钥
  • 加密解密速度慢

与对称加密算法的对比:

  • 对称加密只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥
  • 非对称加密有两种密钥,其中一个是公开的

RSA应用场景:

由于RSA算法的加密解密速度要比对称算法速度慢很多,在实际应用中,通常采取
数据本身的加密和解密使用对称加密算法(AES)。用RSA算法加密并传输对称算法所需的密钥。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值