HarmonyOS 鸿蒙Next 3DES 密钥长度只能为192bit(非24位表述,指192位数据以24字节形式)吗?

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

HarmonyOS 鸿蒙Next 3DES 密钥长度只能为192bit(非24位表述,指192位数据以24字节形式)吗?

在鸿蒙中使用3DES加密,其中密钥长度只能为192bit 24位的密钥吗?发现使用16位的密钥生成key的时候会报错。如果最低是24位的密钥的话,那其他端之前以16位密钥与后台进行校验的是不是也需要从16位改成24位的密钥,进行统一逻辑处理?求大神指点

3 回复
使用三方库[@ohos](/user/ohos)/crypto-js的3DES算法可以支持长度为8、16、24和大于24字节的密钥,参考文档:https://ohpm.openharmony.cn/#/cn/detail/[@ohos](/user/ohos)%2Fcrypto-js
加密:
let str: string = "This is a test";
let key: string = "camfolk[@aabbive](/user/aabbive)[@20161206](/user/20161206)";
let encrypted: string = CryptoJS.TripleDES.encrypt(str, key,{
mode: CryptoJS.mode.ECB,
padding: CryptoJS.pad.Pkcs7,
iv:CryptoJS.enc.Hex.parse('202012$6')
}).ciphertext.toString(CryptoJS.enc.Base64);
解密:
let decrypted = CryptoJS.TripleDES.decrypt(encrypted, 'camfolk[@aabbive](/user/aabbive)[@20161206](/user/20161206)').toString(CryptoJS.enc.Utf8);

更多关于HarmonyOS 鸿蒙Next 3DES 密钥长度只能为192bit(非24位表述,指192位数据以24字节形式)吗?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


cke_222.png改为3DES128生成key的时候就会报如下错误。

HarmonyOS 鸿蒙Next 3DES 密钥长度并非只能为192位

3DES(Triple Data Encryption Algorithm)是一种对称加密算法,其加密原理是使用3个64位的密钥对数据块进行三次加密,相当于对每个数据块执行三次DES加密算法。这种加密方式使得3DES的密钥长度可以达到192位(以24字节形式表述),因为3个64位密钥组合起来正好是192位。然而,理论上如果3DES使用的三个密钥互不相同,则密钥长度可以达到168位(每个密钥64位,但三个密钥不完全独立使用时,实际有效长度可能有所减少);若其中两个密钥相同,则密钥有效长度为112位。

在HarmonyOS鸿蒙Next中,3DES密钥长度的具体实现可能受系统限制或优化,但通常支持标准的192位密钥长度。开发者在使用时应参考官方文档或API说明,以确保密钥长度的正确性和安全性。

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

回到顶部