使用AES对称密钥(CBC模式)加解密,生成symKey失败
使用官方代码进行AES解密数据,生成symKey失败。
传入参数秘钥key:f951cbcc2d3d8f4de802744d8fe6103d
传入参数iv:563b7a6e46394561b9cd6e93564f1632
代码如下:
import cryptoFramework from '@ohos.security.cryptoFramework';
import buffer from '@ohos.buffer';
/**
* AES解密方法
* @param key 秘钥
* @param iv
* @param data 待解密数据
* @returns
*/
export async function aes128CBC_decrypt(key:string,iv:string,data:ArrayBuffer):Promise<cryptoFramework.DataBlob> {
let keyData = new Uint8Array(buffer.from(key, 'utf-8').buffer);
// let keyData = stringToUint8Array(key);
let length = key.length;
let symKey = await genSymKeyByData(keyData);
let decryptData: cryptoFramework.DataBlob = { data: new Uint8Array(data) };
let decryptDataSuccess = await decryptMessagePromise(symKey,iv,decryptData);
return decryptDataSuccess;
}
//生成CBC模式的ivParamsSpec
function genIvParamsSpec(iv:string) {
let dataIv = stringToUint8Array(iv);
let ivBlob: cryptoFramework.DataBlob = { data: dataIv };
let ivParamsSpec: cryptoFramework.IvParamsSpec = {
algName: "IvParamsSpec",
iv: ivBlob
};
return ivParamsSpec;
}
//生成密钥算法为AES、密钥长度为128位的对称密钥(SymKey)
async function genSymKeyByData(symKeyData: Uint8Array) {
let symKeyBlob: cryptoFramework.DataBlob = { data: symKeyData };
let aesGenerator = cryptoFramework.createSymKeyGenerator('AES128');
let symKey = await aesGenerator.convertKey(symKeyBlob);//---错误步骤
console.info('convertKey success');
return symKey;
}
// 解密消息
async function decryptMessagePromise(symKey: cryptoFramework.SymKey,iv:string, cipherText: cryptoFramework.DataBlob) {
let decoder = cryptoFramework.createCipher('AES128|CBC|PKCS7');
let ivParamsSpec = genIvParamsSpec(iv);
await decoder.init(cryptoFramework.CryptoMode.DECRYPT_MODE, symKey, ivParamsSpec);
let decryptData = await decoder.doFinal(cipherText);
return decryptData;
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
使用AES CBC模式加解密,convertKey报错401
112浏览 • 1回复 待解决
如何使用SM4的CBC模式加解密
786浏览 • 1回复 待解决
AES分段加解密,分组模式采用CBC,填充方式采用PKCS7,对超大量数据进行分段加解密
1419浏览 • 1回复 待解决
密钥库生成sm2密钥,密钥对不能同时支持签名和加解密
108浏览 • 1回复 待解决
SM4 CBC模式加解密,有好的方案吗?
932浏览 • 1回复 待解决
HarmonyOS 怎么实现DES(非3DES)CBC模式加解密
643浏览 • 0回复 待解决
实现一次非对称RSA非对称加解密
978浏览 • 1回复 待解决
AES加解密无法使用,有人知道原因吗?
100浏览 • 1回复 待解决
RSA导入外部密钥实现加解密
705浏览 • 1回复 待解决
HarmonyOS 生成非对称密钥报错 Error: convert key fail.
602浏览 • 1回复 待解决
HarmonyOS AES加解密与java无法通用
394浏览 • 1回复 待解决
3DES如何根据指定KEY、IV生成SymKey对称秘钥?
556浏览 • 1回复 待解决
如何进行不同规格的AES加解密
700浏览 • 1回复 待解决
HUKS的SM4加解密,判断密钥的存在以及删除密钥
820浏览 • 1回复 待解决
AES加解密长字符串是否需要分段
486浏览 • 1回复 待解决
在加解密算法框架中使用HMAC 算法,采用SHA256,怎么传入自己生成的密钥去实现加密?
771浏览 • 1回复 待解决
HarmonyOS AES CBC加密问题
389浏览 • 1回复 待解决
加解密HmacSha1 、HmacSha256、aes参考Demo
2002浏览 • 1回复 待解决
#鸿蒙学习大百科#对称密钥和非对称密钥的区别是什么?
199浏览 • 0回复 待解决
SM4采用OFB模式进行加解密
802浏览 • 1回复 待解决
移动端如何生成密钥进行对称加密,和服务器交互?
94浏览 • 1回复 待解决
加解密算法库框架使用
805浏览 • 1回复 待解决
HarmonyOS 如何实现AES_128_ECB_PKCS5Padding加解密算法?
588浏览 • 1回复 待解决
HarmonyOS AES加解密第三方开源工具类库
469浏览 • 1回复 待解决
Huks如何导入AES的密钥?
692浏览 • 1回复 待解决
使用AES对称密钥(CBC模式)加解密
可以参考以下链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/crypto-aes-sym-encrypt-decrypt-cbc-V5
参考demo: