使用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
182浏览 • 1回复 待解决
如何使用SM4的CBC模式加解密
854浏览 • 1回复 待解决
AES分段加解密,分组模式采用CBC,填充方式采用PKCS7,对超大量数据进行分段加解密
1616浏览 • 1回复 待解决
HarmonyOS 怎么实现DES(非3DES)CBC模式加解密
722浏览 • 0回复 待解决
SM4 CBC模式加解密,有好的方案吗?
986浏览 • 1回复 待解决
密钥库生成sm2密钥,密钥对不能同时支持签名和加解密
167浏览 • 1回复 待解决
实现一次非对称RSA非对称加解密
1018浏览 • 1回复 待解决
AES加解密无法使用,有人知道原因吗?
143浏览 • 1回复 待解决
RSA导入外部密钥实现加解密
753浏览 • 1回复 待解决
3DES如何根据指定KEY、IV生成SymKey对称秘钥?
603浏览 • 1回复 待解决
HarmonyOS 生成非对称密钥报错 Error: convert key fail.
684浏览 • 1回复 待解决
HarmonyOS AES加解密与java无法通用
423浏览 • 1回复 待解决
HUKS的SM4加解密,判断密钥的存在以及删除密钥
895浏览 • 1回复 待解决
AES加解密长字符串是否需要分段
530浏览 • 1回复 待解决
如何进行不同规格的AES加解密
786浏览 • 1回复 待解决
在加解密算法框架中使用HMAC 算法,采用SHA256,怎么传入自己生成的密钥去实现加密?
808浏览 • 1回复 待解决
#鸿蒙学习大百科#对称密钥和非对称密钥的区别是什么?
253浏览 • 0回复 待解决
移动端如何生成密钥进行对称加密,和服务器交互?
157浏览 • 1回复 待解决
加解密HmacSha1 、HmacSha256、aes参考Demo
2081浏览 • 1回复 待解决
SM4采用OFB模式进行加解密
870浏览 • 1回复 待解决
HarmonyOS AES CBC加密问题
478浏览 • 1回复 待解决
HarmonyOS AES加解密第三方开源工具类库
535浏览 • 1回复 待解决
Huks如何导入AES的密钥?
727浏览 • 1回复 待解决
加解密算法库框架使用
852浏览 • 1回复 待解决
HarmonyOS 如何实现AES_128_ECB_PKCS5Padding加解密算法?
644浏览 • 1回复 待解决
使用AES对称密钥(CBC模式)加解密
可以参考以下链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/crypto-aes-sym-encrypt-decrypt-cbc-V5
参考demo: