引入三方库 crypto-js ,我已经在 API 11 测试通过,目前没有遇到性能问题。
ohpm i @ohos/crypto-js
static async crypto(str: string, aesKey: string, iv: string): Promise<string> {
let keyParse: string = CryptoJS.enc.Utf8.parse(aesKey)
let ivParse: string = CryptoJS.enc.Utf8.parse(iv)
let aesBase64: string = CryptoJS.AES.encrypt(str, keyParse, {
iv: ivParse,
mode: CryptoJS.mode.CBC,
padding: CryptoJS.pad.Pkcs7
})
.toString();
return aesBase64
}
我们需要的结果是base64 之后的,所以我这里直接 toString();
附:
CryptoJS相关属性说明
CryptoJS.AES,CryptoJS.AES.encrypt加密、CryptoJS.AES.decrypt解密:
- value:加密/解密的字符串
- key:密钥
- iv:密钥偏移量
mode加密模式,使用 CryptoJS.mode.xxx,有如下参数:
- CBC(Cipher Block Chaining) (the default)加密块链模式
- CFB&#x