密码发展过程

1、Base64编码
相信 Base64 大家并不陌生,不论你使用的是什么开发语言都会使用 Base64.数据从可读变成一串不可读的串.所以很多人认为 Base64 是一种加密算法.其实 Base64 只一种编码,并不是一种加密算法.Base64 是一种将二进制数据编码为 ASCII 字符的编码方式.在 Java中可以使用 Base64 类来进行 Base64 编码和解码操作.Base64 主要用于数据的传输和存储,不是一种加密算法

2、对称加密算法

对称加密算法使用相同的密钥来进行加密和解密操作.在 Java 中,常见的对称加密算法包括 AES、DES、3DES.对称加密算法适用于大量数据的加密和解密过程.除了AES、DES、3DES 外,还有一种对称加密算法 SM4,也称为国密 SM4,是中国国家密码管理局发布的一种分组加密算法.SM4 是一种对称密钥算法,意味着加密和解密过程使用相同的密钥.SM4 算法采用分组加密模式,将明文数据按照固定长度的块进行分组,然后使用密钥对每个数据块进行加密和解密操作.SM4 算法的分组长度为 128 位、密钥长度为 128 位,支持 ECB(电子密码本模式)和 CBC(密码分组链接模式)等加密模式

3、非对称加密算法

非对称加密算法使用一对密钥,包括公钥和私钥.公钥用于加密数据,私钥用于解密数据.在 Java 中,常见的非对称加密算法包括 RSA 和 DSA,非对称加密算法常用于数据传输中的密钥交换和数字签名.除了 RSA、DSA 外,还有一种非对称加密算法 SM2,SM2 算法是中国国家密码管理局制定的一种椭圆曲线公钥密码体制,用于数字签名、密钥交换等安全通信场景.它基于椭圆曲线密码学原理,提供了一种安全且高效的非对称加密方法

4、数字信封技术

数字信封技术是一种结合了对称加密和非对称加密的加密方案,用于保护数据的机密性和完整性

它的基本原理如下

假设使用的 对称加密算法是 AES,非对称加密算法是 RSA

发送加密过程:

  1、生成非对称密钥对: 首先,接收方生成一对 RSA 秘钥,包括公钥和私钥.公钥用于提供给发送方进行加密,私钥由接收方自己保存用于解密

  2、生成对称密钥: 发送方生成一个随机的 AES 秘钥,用于对发送的数据进行加密

  3、加密数据: 发送方使用自己生成的 AES 秘钥对数据进行加密,得到加密后的密文

  4、加密秘钥: 发送方使用接收方提供的 RSA 公钥对第二步生成的 AES 秘钥进行加密,得到加密后的密文

  5、创建数字信封: 发送方将 AES 秘钥加密的数据和使用 RSA 公钥加密的 AES 秘钥一起组成数字信封

  6、发送数据:发送方将数字信封发送给接收方

接收解密过程:

  1、接收方使用自身保存的 RSA 私钥 对 使用 RSA 公钥加密的 AES 秘钥 进行解密,得到原始的 AES 秘钥

  2、解密数据:接收方使用原始的 AES 秘钥 对 使用 AES 加密的数据进行解密,得到原始的数据

数字信封技术中同时使用对称加密算法和非对称加密算法,既利用了 AES 加密数据的效率又兼顾了 RSA 的安全性

 

posted @ 2023-08-09 14:54  变体精灵  阅读(27)  评论(0编辑  收藏  举报