HarmonyOS鸿蒙Next中直接运行官网的RSA加解密代码没有加解密成功
HarmonyOS鸿蒙Next中直接运行官网的RSA加解密代码没有加解密成功
测试结果:
Testing started at 14:57 ...
keyPair.pubKey:[PC Preview] unknown format
keyPair.priKey:[PC Preview] unknown format
plainText:[object Object]
plainText.data:84,104,105......
plainText.data.utf:This is a long plainTest! This is a long plainTest! This is a long plainTest!This is a long plainTest! This is a long plainTest! This is a long plainTest! This is a long plainTest!This is a long plainTest! This is a long plainTest! This is a long plainTest! This is a long plainTest!This is a long plainTest! This is a long plainTest! This is a long plainTest! This is a long plainTest!This is a long plainTest! This is a long plainTest! This is a long plainTest! This is a long plainTest!This is a long plainTest! This is a long plainTest! This is a long plainTest! This is a long plainTest!This is a long plainTest! This is a long plainTest! This is a long plainTest! This is a long plainTest!This is a long plainTest! This is a long plainTest! This is a long plainTest! This is a long plainTest!
encryptText:[object Object]
encryptText.data:0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
encryptText.data.utf:
decryptText:[object Object]
decryptText.data:0,0,0
decryptText.data.utf:
decrypt failed
Tests Run Finish.
更多关于HarmonyOS鸿蒙Next中直接运行官网的RSA加解密代码没有加解密成功的实战教程也可以访问 https://www.itying.com/category-93-b0.html
鸿蒙Next中使用RSA加解密需注意:
-
确保使用正确的API:鸿蒙提供security.crypto框架,非传统Java Security API
-
密钥生成必须使用KeyPairGeneratorSpec.Builder设置正确参数
-
加解密操作需在Cipher对象初始化时明确指定:"RSA/ECB/PKCS1Padding"等标准
-
检查密钥长度是否符合鸿蒙要求(推荐2048位)
-
确认数据块大小不超过密钥长度/8-11(PKCS1填充)
-
加解密失败时返回的错误码需通过ohos.security.crypto框架的CryptoErrorCode解析,
更多关于HarmonyOS鸿蒙Next中直接运行官网的RSA加解密代码没有加解密成功的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
从测试结果来看,RSA加解密失败的原因可能有以下几点:
-
密钥格式问题:日志显示"unknown format",说明生成的密钥格式可能不符合预期。在HarmonyOS Next中,RSA密钥需要明确指定格式,建议检查密钥生成部分的代码。
-
加密数据长度问题:RSA加密对数据长度有严格限制。1024位密钥最多只能加密117字节数据,而代码中设置的64字符(64字节)分割是合理的,但需要确认实际数据长度。
-
加密结果异常:加密后的数据全为0,这通常意味着加密过程没有正确执行。建议检查:
- cipher.initSync()是否成功
- doFinalSync()的返回值是否有效
-
环境兼容性问题:测试在PC Preview环境下运行,部分加密功能可能在模拟器中受限。
建议先简化测试用例,使用更短的明文(小于117字节)进行测试,并添加错误处理逻辑检查每个步骤的返回值。同时确认开发环境是否支持完整的加密功能。