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

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

HarmonyOS
9h前
浏览
收藏 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
微信
回复
4h前
相关问题
HarmonyOS AES解密报错
433浏览 • 1回复 待解决
RSA 加密的具体使用方法
4浏览 • 0回复 待解决
如何使用RSA公钥加密明文数据
319浏览 • 1回复 待解决
HarmonyOS 支持rsa使用公钥解密
320浏览 • 1回复 待解决
HarmonyOS RSA解密问题
309浏览 • 1回复 待解决
HarmonyOS RSA加密方式
392浏览 • 1回复 待解决
RSA NoPadding模式加密失败
1066浏览 • 1回复 待解决
HarmonyOS RSA分段加密乱码
399浏览 • 1回复 待解决
HarmonyOS 实现RSA加密功能
427浏览 • 1回复 待解决
HarmonyOS 有RSA解密相关吗
292浏览 • 0回复 待解决
HarmonyOS rsa解密速度过于缓慢
366浏览 • 1回复 待解决
HarmonyOS RSA如何用公钥解密
405浏览 • 0回复 待解决
RSA导入外部密钥实现加解密
669浏览 • 1回复 待解决
HarmonyOS 请问ArkTS如何实现RSA加密
307浏览 • 1回复 待解决
多种加密方式实现加解密
892浏览 • 1回复 待解决
RSA非对称加密-@hms-security/agoh-crypto
385浏览 • 1回复 待解决