加密总结【OpenSSL、对称加密(DES、3DES、AES)|非对称加密(RSA)、HASH散列、HMAC加密方案、数字签名、自签证书】

一、对称加密和非对称加密理解
  • 对称加密
    A与 B 之间之间的通讯数据都用同一套的密钥来进行加密解密。

优点
简单快捷,密钥较短,且破译困难

缺点
秘钥在传递过程中可能泄露。如果用户一旦多的话,管理密钥也是一种困难。不方便直接沟通的两个用户之间怎么确定密钥也需要考虑,这其中就会有密钥泄露的风险,以及存在更换密钥的需求。

  • 非对称加密
    用公钥和私钥来加解密的算法。公钥与私钥是一对存在,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用密钥对数据进行加密,那么只有用对应的公钥才能解密。
    A和B非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。
    另一方面,甲方可以使用乙方的公钥对机密信息进行签名后再发送给乙方;乙方再用自己的私匙对数据进行验签。

优点
算法强度复杂,安全性高

缺点
由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快

  • 对称加密和非对称加密常用算法

对称加密
DES(Data Encryption Standard):对称算法,数据加密标准,速度较快,适用于加密大量数据的场合;
3DES(Triple DES):是基于DES的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高;
RC2和RC4:对称算法,用变长密钥对大量数据进行加密,比 DES 快;
IDEA(International Data Encryption Algorithm)国际数据加密算法,使用 128 位密钥提供非常强的安全性;
AES(Advanced Encryption Standard):高级加密标准,对称算法,是下一代的加密算法标准,速度快,安全级别高,在21世纪AES 标准的一个实现是 Rijndael 算法

非对称加密

RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的,非对称算法; 算法如下:
  首先, 找出三个数, p, q, r,其中 p, q 是两个相异的质数, r 是与 (p-1)(q-1) 互质的数…p, q, r 这三个数便是 private key
接著, 找出 m, 使得 rm == 1 mod (p-1)(q-1)…这个 m 一定存在, 因为 r 与 (p-1)(q-1) 互质, 用辗转相除法就可以得到了…
  再来, 计算 n = pq…
  m, n 这两个数便是 public key

  • 数字证书
    数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,数字证书不是数字身份证,而是身份认证机构盖在数字身份证上的一个章或印(或者说加在数字身份证上的一个签名)。它是由权威机构——CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。
    数字证书绑定了公钥及其持有者的真实身份,它类似于现实生活中的居民身份证,所不同的是数字证书不再是纸质的证照,而是一段含有证书持有者身份信息并经过认证中心审核签发的电子数据,广泛用在电子商务和移动互联网中。
    通俗讲就是车管所会给每个车辆进行认证颁发车牌,通过车牌我们可以查到所有车辆和驾驶员的信,二数字证书就辨别唯一身份,支付宝等的数字证书就是公开的,这不是支付宝自己决定,而是由国际组织认证,这样不管是哪个用户首先就可以根据浏览器返回的证书辨别支付宝的真伪。
  • 数字签名
    数字签名是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。如果中途数据被纂改或者丢失。那么对方就可以根据数字签名来辨别是否是来自对方的第一手信息数据。
    数字签名是个加密的过程,数字签名验证是个解密的过程。
二、OpenSSL
三、非对称加密解密终端演示

桌面有点乱,先创建一个空的文件夹,生成的数据放在此文件夹中
加密总结【OpenSSL、对称加密(DES、3DES、AES)|非对称加密(RSA)、HASH散列、HMAC加密方案、数字签名、自签证书】_第1张图片

1、生成私钥和公钥

获取到当前文件夹:

cd /Users/caomaoxiaozi/Desktop

你可能感兴趣的:(OpenSSL,数字签名,HMAC加密方案,对称AES与非对称RSA加密,HASH哈希散列算法)