DES加密的问题,在调用convertKeySync(key: DataBlob): SymKey是,生成key报错。
报错如下:
Reason:Error
Error name:Error
Error message:The input string contains unsupported characters
Error code:-1
Stacktrace:
at decodeSync (/usr1/hmos_for_system/src/increment/sourcecode/out/generic_generic_arm_64only/general_all_phone_standard/obj/commonlibrary/ets_utils/js_util_module/util/util_js.js:72:1)
at decodeSync (oh_modules/.ohpm/@pura+harmony-utils@1.0.9/oh_modules/@pura/harmony-utils/src/main/ets/utils/Base64Util.ets:78:18)
at strToUint8Array (oh_modules/.ohpm/@pura+harmony-utils@1.0.9/oh_modules/@pura/harmony-utils/src/main/ets/crypto/CryptoHelper.ets:53:24)
at getSymKeyDataBlob (oh_modules/.ohpm/@pura+harmony-utils@1.0.9/oh_modules/@pura/harmony-utils/src/main/ets/crypto/CryptoHelper.ets:93:22)
at getConvertSymKeySync (oh_modules/.ohpm/@pura+harmony-utils@1.0.9/oh_modules/@pura/harmony-utils/src/main/ets/crypto/CryptoUtil.ets:134:48)
at creatQRCodeWithTime (entry/src/main/ets/pages/activity/ActivityQRCodePage.ets:116:18)
at aboutToAppear (entry/src/main/ets/pages/activity/ActivityQRCodePage.ets:96:5)
at anonymous (entry/src/main/ets/views/HomeToolbarView.ets:62:11)
传入的密钥是qazDES956367encode7788TR*&^!@\#TG123,从报错信息来看,是调用了decodeSync方法导致的报错。另外生成3DES密钥,密钥长度为192位即24字节。传入的密钥格式不正确。
对称密钥生成和转换规格-3DES:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/crypto-sym-key-generation-conversion-spec-V5\#section3des
指定二进制数据转换3DES密钥:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/crypto-convert-binary-data-to-sym-key-V5\#指定二进制数据转换3des密钥
需要注意CryptoFramework仅支持3DES,如果需要DES加密,参考crypto-js三方库:https://gitee.com/openharmony-sig/crypto-js