一:前言
Java的Cipher类是Java Cryptography Extension (JCE)框架的一部分,用于实现加密和解密操作。主要功能是将明文数据转换为密文数据(加密)以及将密文数据转换回明文数据(解密)。
Cipher类提供了多种加密算法的访问,包括对称加密算法(如AES、DES)和非对称加密算法(如RSA、DSA)。使用Cipher类时,首先需要选择一个加密算法,然后初始化Cipher实例为加密模式或解密模式,并提供所需的密钥和参数(如初始化向量IV)。随后使用doFinal进行加解密操作。
关于加密算法相关知识,知乎有一篇不错的密码学文章,感兴趣的可以自行查阅。
密码学:https://zhuanlan.zhihu.com/p/550206759
二:加密算法
1:加密方式
推荐使用AES加密,在上面的密码文章中有介绍,AES加密是目前较为安全的加密方式了,DES在之前已被破解。
2:运算模式
分为CBC(有向量模式)和 ECB(无向量模式),向量可简单理解为偏移量,使用CBC模式时,需要额外创建一个IvParameterSpec(Iv&#x