HarmonyOS @ohos.security.cryptoFramework使用cipher解密失败
加密内容为长度为12个字符长度时,使用cipher解密:const output = await cipher.doFinal(null); 这一步会被 catch,没有error信息。
例子:使用testContent1进行cipher加密,字符长度为12,key为AES256类型,加密解密都可以。
const testContent1 = "aaa_bbb_ccc_";
加密后的数据:19D2CF481514BA7C3D08F80D5A8960C35AD01F54DEEC6453AF9B42538FEECF96使用testContent2进行cipher加密,字符长度为16,key为AES256类型,加密可以,解密被catch没有错误信息。
const testContent2 = "aaa_bbb_ccc_ddd_";
加密后的数据: 203A2C904532ED37C1F25958895E901B8972477F03049230298ED9FCB2F9CCA7
// 解密代码
const AES256 = 'AES256';
const AES_CBC_INIT = 'AES|CBC|PKCS5';
const IV_PARAMETER_LENGTH = 32;
try {
let symKeyGenerator = cryptoFramework.createSymKeyGenerator(AES256);
let skeySpec = await symKeyGenerator.convertKey({ data: aesKey });
let cipher = cryptoFramework.createCipher(AES_CBC_INIT);
let ivParameter = content.substring(0, IV_PARAMETER_LENGTH);
const ivparam: cryptoFramework.IvParamsSpec = {
algName: "IvParamsSpec",
iv: {
data: parseHexStr2Byte(ivParameter)
}
};
await cipher.init(cryptoFramework.CryptoMode.DECRYPT_MODE, skeySpec, ivparam);
await cipher.update({
data: parseHexStr2Byte(content.substring(IV_PARAMETER_LENGTH))
});
const output = await cipher.doFinal(null);
const ciphertextBytes = output.data;
return bufferToString(ciphertextBytes);
} catch (e) {
LogUtil.error(e);
}
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
如何使用@ohos.security.cryptoFramework库对字符串进行MD5加密?
194浏览 • 1回复 待解决
ohos.security.cryptoFramework框架下的RSA分段加密,doFinal函数401异常
527浏览 • 1回复 待解决
Cipher DES加解密,使用cryptoFramework.createCipher无法实现DES加解密,如何实现?
231浏览 • 1回复 待解决
import asset from '@ohos.security.asset'报错
2197浏览 • 1回复 待解决
HarmonyOS 使用DES解密,转换 smkey失败
507浏览 • 1回复 待解决
HarmonyOS cryptoFramework 使用MD5 加签,获取结果失败
63浏览 • 1回复 待解决
cryptoFramework.Md update 失败报错
1830浏览 • 1回复 待解决
HarmonyOS 使用 DES 对接口请求响应加解密,对比 java 不懂 cryptoFramework 的使用
39浏览 • 1回复 待解决
import asset from "@ohos.security.asset" 导入报错
1720浏览 • 1回复 待解决
cryptoFramework.createCipher,可否提供AES解密的例子?
792浏览 • 1回复 待解决
des解密同步方法解密失败
220浏览 • 1回复 待解决
cryptoFramework是否支持RSA的私钥加密,公钥解密
865浏览 • 1回复 待解决
HarmonyOS cryptoFramework能否支持DES算法(非3DES)加解密
83浏览 • 1回复 待解决
使用AES对称密钥(CBC模式)加解密,生成symKey失败
325浏览 • 1回复 待解决
HarmonyOS 3des加解密失败
24浏览 • 1回复 待解决
ohos.security.huks (通用密钥库系统) 中,使用AES GCM算法进行操作时AAD可以为空吗
2000浏览 • 1回复 待解决
HarmonyOSuserid 0 进程调用huks加解密时失败
24浏览 • 1回复 待解决
HarmonyOS 使用 cryptoFramework.createCipher 创建RSA非对称加密问题
23浏览 • 1回复 待解决
有没有高性能的AES加解密组件,使用ohos/crypto-js解密比较大的数据(约300K)时会卡死?
218浏览 • 1回复 待解决
HarmonyOS 加解密算法如何使用
66浏览 • 1回复 待解决
HarmonyOS @ohos/protobufjs 使用咨询
535浏览 • 1回复 待解决
HarmonyOS @ohos/pulltorefresh使用问题
38浏览 • 1回复 待解决
ohos.permission.SET_TIME申请导致安装失败?
3750浏览 • 1回复 待解决
JS引入import deviceInfo from '@ohos.deviceInfo'失败
6919浏览 • 1回复 待解决
HarmonyOS CryptoFramework中PubKey.getAsyKeySpec报错
17浏览 • 1回复 待解决
代码使用错误,使用update之后自己做完dofinal需要将所有的结果拼接起来得到最后的结果,如果数据量较少,建议不使用update直接使用dofinal。这个地方报错是因为使用update解密后正好解密完dofinal里面没有结果导致对空数据做解密。