加密算法(对称/非对称,可逆/不可逆)

文章介绍了对称加密算法,如AES、DES和IDEA,强调了密钥管理的重要性。接着讨论了非对称加密,包括RSA、DSA和DH算法,以及它们在密钥交换和数字签名中的应用。此外,文章还提到了不可逆加密,如MD5和SHA,常用于密码存储和数据完整性验证。
摘要由CSDN通过智能技术生成

一、对称加密算法

对称加密指加密和解密使用相同密钥的加密算法。它要求发送方和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信性至关重要。

分组加密算法:AES、DES、Blowfish、CAST、IDEA、RC2、RC5

1、AES(推荐)

最常用的对称加密算法。

密钥建立时间短、灵敏性好、内存需求低(不管怎样,反正就是好)。

实际使用中,使用工作模式为 CTR(最好用 BC 去实现),此工作模式需要引入 IV 参数(16位的字节数组)。

密钥长度 128 / 192 / 256,其中 192 与 256 需要配置无政策限制权限文件(JDK6)。

填充模式最常用的两种 PKCS5Padding 和 PKCS7Padding,其中后者只有 BC 独有。

2、DES

已淘汰,是对称加密算法的基石,具有学习价值。

3、DESede(三重DES)

早于 AES 出现来替代 DES 。

计算密钥时间太长、加密效率不高,所以也基本上不用。

密钥长度112/168(JDK)、128/192(BC)

4、IDEA

常用的电子邮件加密算法。

工作模式只有 ECB 。

密钥长度128位

5、PBE

综合了消息摘要算法和对称加密算法,最常见的是 PBEWithMD5AndDES。

工作模式只有CBC(已丧失安全性,不推荐使用),所以PBE也不推荐使用了

二、非对称加密算法

非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密(公钥加密 - 私钥解密);如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密(私钥签名 - 公钥验签)。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

非对称密码体制的特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。对称密码体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。所以保证其安全性就是保证密钥的安全,而非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了。这样安全性就大了很多。

OpenSSL一共实现了 4 种非对称加密算法:DH 算法、RSA 算法、DSA 算法和椭圆曲线算法(EC)。

1、DH 算法

DH 是 Diffie-Hellman 的首字母缩写,是 Whitefield 与 Martin Hellman 在1976年提出了一个的密钥交换协议,故其一般用于密钥交换。

详情

2、RSA 算法(推荐)

既可以用于密钥交换、数字签名、数据加密。

3、DSA 算法

Digital Signature Algorithm,数字签名算法,只用于数字签名。

4、EC 算法

椭圆曲线算法

三、不可逆加密

上述一二都可以通过对应密钥来解密数据,不可逆加密不能反向解密得到密码原文

不可逆加密:【Hash加密算法/散列算法/摘要算法】

一旦加密就不能反向解密得到密码原文,一般用来加密用户密码,app的服务器端数据库里一般存储的也都是加密后的用户密码。

在数据传输的过程中,首先把密码类数据经过MD5加密算法加密,然后再在外面使用可逆的加密方式加密一次,这样在数据传输的过程中,即便数据被截获了,但是想要完全破解,还是很难的。

Hash算法特别的地方在于它是一种单向算法,用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。

用途:一般用于效验下载文件正确性,一般在网站上下载文件都能见到;存储用户敏感信息,如密码、 卡号等不可解密的信息。

常见的不可逆加密算法有:MD5、SHA、HMAC

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值