关于HarmonyOS开发中实现RSA加密功能?

关于HarmonyOS开发中实现RSA加密功能?想实现RSA加密功能,接入了一个RSA加密的库。 ohpm install @hms-security/agoh-crypto 加密方法如图,参数有两个,一个是加密字符串,一个是公钥,但现在一直提示加密失败。提示语为 min n bits of RSA is 3072 ,如何解决?

阅读 564
1 个回答

ohAegRsaEncText接口公钥加密,当前支持3072,请确定公钥是3072位的,以下demo可供参考:

import cryptoFramework from "@ohos.security.cryptoFramework"; 
import { buffer } from '@kit.ArkTS'; 
import util from '@ohos.util'; 
 
async genRsaPubKey () { 
  //引入外部的公钥加密 
  const pubKey = "asdasd123231dsasdasd123123asdasd12312xxxxxxxxxxxxxxxxxxxxxxxxxxxx"; 
  //明文 
  const plaintext = '我是明文' 
  const base64 = new util.Base64Helper() 
  let publicKeyDataBlob: cryptoFramework.DataBlob = { data: base64.decodeSync(pubKey) }; 
  let asyKeyGenerator = cryptoFramework.createAsyKeyGenerator('RSA1024'); 
  let cipher = cryptoFramework.createCipher('RSA|ECB|PKCS1'); //创建一个 Cipher (解密)对象 
  let keyGenPromise: cryptoFramework.KeyPair = await asyKeyGenerator.convertKey(publicKeyDataBlob, null); 
  await cipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, keyGenPromise.pubKey, null); 
  let put: cryptoFramework.DataBlob = { data: new Uint8Array(buffer.from(plaintext).buffer) }; 
  const finalRes = await cipher.doFinal(put) 
  console.log(`加密成功 ${finalRes.data}`) 
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进