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

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

HarmonyOS
2024-11-08 11:22:05
709浏览
收藏 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加密报错
491浏览 • 1回复 待解决
HarmonyOS RSA私钥加密公钥解密
640浏览 • 1回复 待解决
HarmonyOS AES解密报错
958浏览 • 1回复 待解决
HarmonyOS RSA加密中,公私钥问题
546浏览 • 1回复 待解决
HarmonyOS 使用官网的des加密报错
514浏览 • 1回复 待解决
HarmonyOS 私钥加密公钥解密问题
480浏览 • 1回复 待解决
HarmonyOS AES加解密报错17630001
520浏览 • 1回复 待解决
HarmonyOS AES128|CBC|NoPadding 加密报错
339浏览 • 1回复 待解决
HarmonyOS @ohos/node-polyfill crypto加密报错
241浏览 • 1回复 待解决
rsa 公钥解密初始化报错
791浏览 • 1回复 待解决
HarmonyOS RSA解密问题
802浏览 • 1回复 待解决
RSA 加密的具体使用方法
678浏览 • 1回复 待解决
HarmonyOS 支持rsa使用公钥解密
845浏览 • 1回复 待解决
HarmonyOS RSA加密方式
1112浏览 • 1回复 待解决
HarmonyOS RSA解密数据
238浏览 • 1回复 待解决
HarmonyOS AES加密/RSA加密问题
392浏览 • 1回复 待解决
如何使用RSA公钥加密明文数据
1029浏览 • 1回复 待解决