HarmonyOS 鸿蒙Next AES加密时,调用symKeyGenerator.convertKey()方法报错“create C cipher fail!”

发布于 1周前 作者 sinazl 来自 鸿蒙OS

HarmonyOS 鸿蒙Next AES加密时,调用symKeyGenerator.convertKey()方法报错“create C cipher fail!”

我使用AES加密时,调用symKeyGenerator.convertKey()方法报错“create C cipher fail!”

这是我的部分代码:

static stringToUint8Array(str: string, len?: number): Uint8Array {
let arr: number[] = [];
if (len === undefined) {
len = str.length;
}
for (let i = 0; i < len; i++) {
if (str.length > i) {
arr.push(str.charCodeAt(i));
} else {
arr.push(0);
}
}
return new Uint8Array(arr);
}

static async aesECBEncrypt(plaintext: string, keytext: string): Promise<string> {
try {

let cipherAlgName = 'AES/ECB/PKCS7Padding'; // 使用标准的算法名称
let symKeyGenerator = cryptoFramework.createSymKeyGenerator('AES128');
let key = await symKeyGenerator.convertKey({ data: CiperUtils.stringToUint8Array(keytext, 16) })
let aesCiper = cryptoFramework.createCipher(cipherAlgName)
await aesCiper.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, key, null)
let encoderesult = await aesCiper.doFinal({ data: CiperUtils.stringToUint8Array(plaintext) })
let base64 = new util.Base64Helper();
let result: string = base64.encodeToStringSync(encoderesult.data);
return result
} catch (error) {
return ''
}

有没有大佬帮忙分析下问题


更多关于HarmonyOS 鸿蒙Next AES加密时,调用symKeyGenerator.convertKey()方法报错“create C cipher fail!”的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

可以看下文档

let cipherAlgName = 'AES128|ECB|PKCS7';

更多关于HarmonyOS 鸿蒙Next AES加密时,调用symKeyGenerator.convertKey()方法报错“create C cipher fail!”的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


标题

这是段落内容。

图片描述

针对您提到的HarmonyOS鸿蒙Next在AES加密时调用symKeyGenerator.convertKey()方法报错“create C cipher fail!”的问题,这通常是由于底层加密库在尝试创建或初始化加密上下文时失败。可能的原因包括:

  1. 密钥格式或类型不匹配:确保传递给convertKey()的密钥符合AES加密的要求,包括密钥长度和格式。

  2. 环境或依赖问题:检查鸿蒙系统的加密库是否完整且未损坏,以及是否有必要的系统更新或补丁未应用。

  3. 权限问题:确保应用有足够的权限执行加密操作,包括访问必要的系统资源。

  4. API使用不当:确认symKeyGenerator.convertKey()的调用方式符合API文档的要求,包括参数类型和顺序。

由于错误信息指向底层C语言级别的加密实现失败,这通常不是应用层代码能直接解决的问题。建议检查上述可能原因,并尝试在不同的设备或鸿蒙系统版本上复现问题,以排除特定环境的问题。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部