1 算法的原理:
AES是一种对称加密算法,也就是说加密和解密使用的是同一个密钥。其基本原理是将明文分成固定大小的块(128位),然后使用密钥对每个块进行加密操作,最后生成密文。在加密过程中,还需要使用一个向量(IV)来增加安全性,避免相同的明文块生成相同的密文块。解密过程则是将密文块解密成明文块,再将明文块拼接起来,最终还原原始的明文。
2 需要引入的依赖和安装的包
以下是使用Maven进行构建时需要添加的依赖项:
xml
<dependencies>
<dependency>
<groupId>javax.crypto</groupId>
<artifactId>jce</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
</dependencies>
注意,这里使用的是 commons-codec
库,而非Java标准库中的 java.util.Base64
类。可以在代码中使用 org.apache.commons.codec.binary.Base64
替换 java.util.Base64
。
Java代码需要引入以下包和类:
- javax.crypto.Cipher
- javax.crypto.spec.IvParameterSpec
- javax.crypto.spec.SecretKeySpec
- java.nio.charset.StandardCharsets
- java.util.Base64
Vue代码需要安装crypto-js插件,可以通过以下命令进行安装:
npm install crypto-js
3 核心代码示例
Java代码:
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java