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() 
}
分享
微博
QQ
微信
回复
2024-11-08 16:53:38
相关问题
HarmonyOS AES解密报错
664浏览 • 1回复 待解决
rsa 公钥解密初始化报错
229浏览 • 1回复 待解决
RSA 加密的具体使用方法
178浏览 • 1回复 待解决
HarmonyOS RSA解密问题
436浏览 • 1回复 待解决
如何使用RSA公钥加密明文数据
433浏览 • 1回复 待解决
HarmonyOS 支持rsa使用公钥解密
469浏览 • 1回复 待解决
HarmonyOS RSA加密方式
604浏览 • 1回复 待解决
HarmonyOS 实现RSA加密功能
550浏览 • 1回复 待解决
RSA NoPadding模式加密失败
1220浏览 • 1回复 待解决
HarmonyOS RSA分段加密乱码
582浏览 • 1回复 待解决
RSA导入外部密钥实现加解密
785浏览 • 1回复 待解决
HarmonyOS RSA如何用公钥解密
605浏览 • 0回复 待解决
HarmonyOS 请问ArkTS如何实现RSA加密
477浏览 • 1回复 待解决
HarmonyOS 有RSA解密相关吗
409浏览 • 0回复 待解决
HarmonyOS rsa解密速度过于缓慢
613浏览 • 1回复 待解决