密码发展过程
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 的安全性
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2022-08-09 设计模式---单例模式