HarmonyOS RSA加密失败问题
其他系统代码:
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
byte[] bytePublicKey = Base64.decode(publicKey, 0);
X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(bytePublicKey);
Key publicK = keyFactory.generatePublic(x509EncodedKeySpec);
String transformation = "RSA/ECB/PKCS1Padding";
Cipher cipher = Cipher.getInstance(transformation);
cipher.init(1, publicK);
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
HarmonyOS 代码:
static async encryptByPublicKey(data: string) {
let base64Helper = new util.Base64Helper()
let keyGenerator = cryptoFramework.createAsyKeyGenerator('RSA1024')
let pubKey = await RsaEncryptUtil.genPublicKeyPairByData()
let keyPair = await keyGenerator.convertKey(pubKey.getEncoded(), null)
let cipher = cryptoFramework.createCipher('RSA|PKCS1')
await cipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, keyPair.pubKey, null)
let inputBlob: cryptoFramework.DataBlob = {
data: base64Helper.decodeSync(data)
}
let cipherText = await cipher.doFinal(inputBlob);
return base64Helper.encodeToString(cipherText.data)
}
static async genPublicKeyPairByData(): Promise<cryptoFramework.PubKey> {
RsaEncryptUtil.key = ContextUtils.getContext().resourceManager.getRawFileContentSync(RsaEncryptUtil.fileName)
let cerData = new util.Base64Helper().decodeSync(RsaEncryptUtil.key)
let encodingBlob: cert.EncodingBlob = {
data: RsaEncryptUtil.key,
data: cerData,
// 根据encodingData的格式进行赋值,支持FORMAT_PEM和FORMAT_DER和FORMAT_PKCS7
encodingFormat: cert.EncodingFormat.FORMAT_PEM
};
let x509Cert = await cert.createX509Cert(encodingBlob)
return x509Cert.getPublicKey()
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
其中本地文件内容为公钥字符串长度216位无边界符,尝试了 cert.EncodingFormat所有枚举类型均失败
错误代码为:code=401 message="create X509Cert failed"
根据官方文档得知原因为格式错误 但是该格式在上述其他系统代码中可以正常运行
帮忙确认一下是其他系统转HarmonyOS 的代码错误还是官方目前不支持相关格式
HarmonyOS
赞
收藏 0
回答 1
相关问题
RSA NoPadding模式加密失败
2585浏览 • 1回复 待解决
HarmonyOS AES加密/RSA加密问题
1446浏览 • 1回复 待解决
HarmonyOS RSA加密中,公私钥问题
1154浏览 • 1回复 待解决
HarmonyOS RSA加密,实用字符串转pubKey失败
997浏览 • 1回复 待解决
HarmonyOS RSA加密方式
1929浏览 • 1回复 待解决
HarmonyOS 实现RSA加密功能
1290浏览 • 1回复 待解决
HarmonyOS rsa加密报错
1181浏览 • 1回复 待解决
HarmonyOS RSA分段加密乱码
1665浏览 • 1回复 待解决
HarmonyOS 使用 cryptoFramework.createCipher 创建RSA非对称加密问题
1113浏览 • 1回复 待解决
HarmonyOS rsa加密返回401错误
997浏览 • 1回复 待解决
HarmonyOS RSA加密算法实现
1300浏览 • 1回复 待解决
HarmonyOS RSA私钥加密公钥解密
1258浏览 • 1回复 待解决
HarmonyOS 请问ArkTS如何实现RSA加密?
1608浏览 • 1回复 待解决
RSA加密方法在HarmonyOS 的实现
1221浏览 • 1回复 待解决
HarmonyOS 请求参数的AES加密和RSA加密的实现方法
938浏览 • 1回复 待解决
RSA 加密的具体使用方法
1368浏览 • 1回复 待解决
HarmonyOS 在使用rsa加密的时候发现加密串太长会异常
1287浏览 • 1回复 待解决
HarmonyOS 使用AES加密失败
1000浏览 • 1回复 待解决
RSA加密,使用自有私钥解密报错
1325浏览 • 1回复 待解决
如何使用RSA公钥加密明文数据
1571浏览 • 1回复 待解决
RSA 加密实践问题。将java中RSA加密代码翻译成 arkts 代码时,无法确定正确的API。希望提供正确的arkts代码
2043浏览 • 1回复 待解决
HarmonyOS RSA解密问题
1244浏览 • 1回复 待解决
HarmonyOS RSA使用问题
690浏览 • 1回复 待解决
加密库如:AES、DES、RSA、DSA、Sha256加密是否支持?
1393浏览 • 1回复 待解决
HarmonyOS RSA加密的base64秘钥转换
1762浏览 • 1回复 待解决
该报错信息code=401 message=“create X509Cert failed”,错误原因是非法入参
错误原因文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-cert-V5#certresult
可能是由于encodingBlob的格式不对,data格式为Uint8Array参考文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-cert-V5#encodingblob