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 rsa加密报错
45浏览 • 1回复 待解决
HarmonyOS RSA私钥加密公钥解密
44浏览 • 1回复 待解决
HarmonyOS AES解密报错
720浏览 • 1回复 待解决
HarmonyOS RSA加密中,公私钥问题
23浏览 • 1回复 待解决
HarmonyOS 使用官网的des加密报错
43浏览 • 1回复 待解决
HarmonyOS 私钥加密公钥解密问题
80浏览 • 1回复 待解决
HarmonyOS AES128|CBC|NoPadding 加密报错
58浏览 • 1回复 待解决
rsa 公钥解密初始化报错
313浏览 • 1回复 待解决
HarmonyOS RSA解密问题
490浏览 • 1回复 待解决
RSA 加密的具体使用方法
243浏览 • 1回复 待解决
HarmonyOS 支持rsa使用公钥解密
499浏览 • 1回复 待解决
HarmonyOS RSA加密方式
672浏览 • 1回复 待解决
HarmonyOS RSA公钥解密
16浏览 • 1回复 待解决
HarmonyOS RSA解密数据
34浏览 • 1回复 待解决
如何使用RSA公钥加密明文数据
496浏览 • 1回复 待解决