RSA加密,使用自有私钥解密报错

为啥使用原有的公私钥对可以加密,无法解密。但使用https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/crypto-rsa-asym-encrypt-decrypt-pkcs1-0000001774120466​提供的示例中的公私钥对可以正常加解密。

HarmonyOS
2024-11-08 11:22:05
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
Heiang

由于RSA非对称的特性,如果要用公钥解密时需要传入私钥加密的密文。可以尝试下:

// 加密消息 
async function encryptMessagePromise(publicKey: cryptoFramework.PubKey, plainText: cryptoFramework.DataBlob) { 
  let cipher = cryptoFramework.createCipher('RSA1024|PKCS1'); 
  await cipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, publicKey, null); 
  let encryptData = await cipher.doFinal(plainText); 
  return encryptData; 
} 
 
//解密消息 
async function decryptMessagePromise(privateKey: cryptoFramework.PriKey, cipherText: cryptoFramework.DataBlob) { 
  let decoder = cryptoFramework.createCipher('RSA1024|PKCS1'); 
  await decoder.init(cryptoFramework.CryptoMode.DECRYPT_MODE, privateKey, null); 
  let decryptData = await decoder.doFinal(cipherText); 
  return decryptData; 
} 
//传入你的公钥和待加密文本即可完成加密 
async function rsaEncryptText(publicKey: string, content: string): Promise<string> { 
  let asyKeyGenerator = cryptoFramework.createAsyKeyGenerator("RSA1024"); 
  // 创建非对称密钥生成器对象 
  let base64 = new util.Base64Helper(); 
  let pkVal = base64.decodeSync(publicKey) 
  let pkBlob: cryptoFramework.DataBlob = { data: pkVal }; 
  //将公钥转换 
  let keyPair = await asyKeyGenerator.convertKey(pkBlob, null); 
  let plainText: cryptoFramework.DataBlob = { data: new Uint8Array(buffer.from(content, 'utf-8').buffer) }; 
  let encryptText = await encryptMessagePromise(keyPair.pubKey, plainText); 
  return encryptText.data.toString() 
}
  • 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.
  • 27.
  • 28.
分享
微博
QQ
微信
回复
2024-11-08 16:53:38


相关问题
HarmonyOS rsa加密报错
691浏览 • 1回复 待解决
HarmonyOS RSA私钥加密公钥解密
871浏览 • 1回复 待解决
HarmonyOS AES解密报错
1151浏览 • 1回复 待解决
HarmonyOS RSA加密中,公私钥问题
744浏览 • 1回复 待解决
HarmonyOS 使用官网的des加密报错
696浏览 • 1回复 待解决
HarmonyOS 私钥加密公钥解密问题
702浏览 • 1回复 待解决
HarmonyOS AES加解密报错17630001
818浏览 • 1回复 待解决
HarmonyOS AES128|CBC|NoPadding 加密报错
519浏览 • 1回复 待解决
HarmonyOS @ohos/node-polyfill crypto加密报错
443浏览 • 1回复 待解决
rsa 公钥解密初始化报错
1037浏览 • 1回复 待解决
HarmonyOS RSA解密问题
941浏览 • 1回复 待解决
RSA 加密的具体使用方法
875浏览 • 1回复 待解决
HarmonyOS 支持rsa使用公钥解密
1038浏览 • 1回复 待解决
HarmonyOS RSA解密数据
444浏览 • 1回复 待解决
HarmonyOS AES加密/RSA加密问题
707浏览 • 1回复 待解决
HarmonyOS RSA加密方式
1300浏览 • 1回复 待解决
HarmonyOS 的RSA解密问题?
472浏览 • 0回复 待解决