HarmonyOS 如何使用公钥解密私钥加密,切换到代码中没法createVerify

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
superinsect
function rsaKeyBase64(puk: string, prk: string) {
  // 创建一个AsyKeyGenerator实例
  let rsaGenerator = cryptoFramework.createAsyKeyGenerator('RSA2048');
  let base64 = new util.Base64Helper();
  if (puk != '' && prk != '') {
    let keyPair = rsaGenerator.convertKeySync({ data: base64.decodeSync(puk) }, { data: base64.decodeSync(prk) });
    return keyPair;
  } else if (prk) {
    let keyPair = rsaGenerator.convertKeySync(null, { data: base64.decodeSync(prk) });
    return keyPair;
  } else if (prk) {
    let keyPair = rsaGenerator.convertKeySync({ data: base64.decodeSync(puk) }, null);
    return keyPair;
  } else {
    let keyPair = rsaGenerator.generateKeyPairSync();
    return keyPair;
  }
}

//私钥加密
async function signMessagePromise(priKey: cryptoFramework.PriKey) {
  let signAlg = "RSA1024|PKCS1|NoHash|OnlySign";
  let signer = cryptoFramework.createSign(signAlg);
  await signer.init(priKey);
  let signData = await signer.sign({ data: RSAUtil.stringToUint8Array("私钥加密") });
  return signData;
}

// 公钥解密
async function verifyMessagePromise(signMessageBlob: cryptoFramework.DataBlob, pubKey: cryptoFramework.PubKey) {
  let verifyAlg = "RSA1024|PKCS1|NoHash|Recover";
  let verifier = cryptoFramework.createVerify(verifyAlg);
  await verifier.init(pubKey);
  let rawSignData = await verifier.recover(signMessageBlob);
  console.log("rsa puk data " + RSAUtil.uint8ArrayToString(rawSignData?.data))
  return rawSignData;
}
分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS 私钥加密解密问题
52浏览 • 1回复 待解决
如何使用RSA加密明文数据
480浏览 • 1回复 待解决
HarmonyOS 支持rsa使用解密
486浏览 • 1回复 待解决
HarmonyOS RSA如何解密
646浏览 • 0回复 待解决
RSA加密使用自有私钥解密报错
250浏览 • 1回复 待解决
rsa 解密初始化报错
285浏览 • 1回复 待解决
如何实现RSA的PK加密一段文字
619浏览 • 1回复 待解决
HarmonyOS RAS加密,AES加密解密
49浏览 • 1回复 待解决
使用32字节秘解密后报错
1678浏览 • 1回复 待解决