HarmonyOS 鸿蒙Next AES-CBC加解密
HarmonyOS 鸿蒙Next AES-CBC加解密
AegAesCbc.ohAegAesCbcEncText方法加密后输出Uint8Array格式 转string后乱码
3 回复
aes ebc 参考此代码demo实例
import { buffer, util } from '[@kit](/user/kit).ArkTS';
[@Entry](/user/Entry)
[@Component](/user/Component)
struct AESCBCCrypto {
[@State](/user/State) message: string = '点击开始';
build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
.onClick(() => {
// aesEBC()
})
}
.width('100%')
}
.height('100%')
}
}
async function aesEBC() {
try {
// symKey 为服务器传入公钥 plainText 为 需要加密的明文
let encryptText = encryptMessage(symKey, plainText);
let decryptText = decryptMessage(symKey, encryptText);
if (plainText.data.toString() === decryptText.data.toString()) {
console.info('decrypt ok');
console.info('decrypt ok');
console.info('decrypt plainText: ' + buffer.from(decryptText.data).toString('utf-8'));
} else {
console.error('decrypt failed');
}
}catch (error){
console.error(JSON.stringify(error));
}
}
// 加密消息
function encryptMessage(symKey: cryptoFramework.SymKey, plainText: cryptoFramework.DataBlob) {
let cipher = cryptoFramework.createCipher('AES128|ECB|PKCS7');
cipher.initSync(cryptoFramework.CryptoMode.ENCRYPT_MODE, symKey, null);
let cipherData = cipher.doFinalSync(plainText);
return cipherData;
}
// 解密消息
function decryptMessage(symKey: cryptoFramework.SymKey, cipherText: cryptoFramework.DataBlob) {
let decoder = cryptoFramework.createCipher('AES128|ECB|PKCS7');
decoder.initSync(cryptoFramework.CryptoMode.DECRYPT_MODE, symKey, null);
let decryptData = decoder.doFinalSync(cipherText);
return decryptData;
}
ByteArray 通过base64转为string
在HarmonyOS鸿蒙Next系统中进行AES-CBC加解密操作时,需要确保使用正确的加密库和配置参数。AES(高级加密标准)是一种广泛应用的对称加密算法,而CBC(Cipher Block Chaining)模式则是AES的一种工作模式,它通过将前一个密文块与当前明文块结合进行加密,来增强安全性。
在HarmonyOS开发中,可以使用系统提供的加密API来实现AES-CBC加解密。具体步骤如下:
-
引入加密库:确保项目中已经引入了必要的加密库,通常是系统自带的加密模块。
-
设置密钥和IV(初始化向量):AES-CBC模式需要一个密钥和一个IV,它们通常是由开发者指定或通过安全方式生成的。
-
配置加密参数:指定加密算法为AES,模式为CBC,并设置填充方式(如PKCS5Padding)。
-
执行加解密操作:使用加密库提供的接口进行加解密,确保传入正确的明文、密钥、IV和参数。
-
处理异常:捕获并处理可能发生的加密异常,如密钥不匹配、数据格式错误等。
如果上述步骤正确无误,但在实际操作中遇到问题,可能是由于特定环境下的配置差异或库版本问题。此时,建议详细检查错误日志,并参考HarmonyOS官方文档进行排查。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。