RSA导入外部密钥实现加解密

为了保护数据的安全,  使用加解密方式让一些信息在传递的过程中保证它的安全性,确保用户重要密码数据数据安全

HarmonyOS
2024-05-28 21:15:01
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
莫莫莫小贝

使用的核心API

  •  加解密算法库框架
  •  接口及参数说明

核心代码解释

ASY_KEY_NAME_RSA_3072 参数规格 
ALG_NAME_RSA_3072 创建cipher对象的算法参数和填充方式 
/* 
* 加密 
* */ 
public static async add(str: string, publicKey: string): Promise<string> { 
let result = ''; 
try { 
let asyKeyGenerator = cryptoFramework.createAsyKeyGenerator(this.ASY_KEY_NAME_RSA_3072); 
 
const publicKeyDataBlob = { data: this.decodeToUint8Array(publicKey) }; 
 
let cipher = cryptoFramework.createCipher(this.ALG_NAME_RSA_3072); //创建一个 Cipher (解密)对象 
let put: cryptoFramework.DataBlob = { data: this.stringToUint8Array(str) }; 
let globalKeyPair: cryptoFramework.KeyPair = await asyKeyGenerator.convertKey(publicKeyDataBlob, null); 
await cipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, globalKeyPair.pubKey, null); 
const finalRes = await cipher.doFinal(put) 
 result = this.encodeToString(finalRes.data); 
} catch (err) { 
console.log(err.message) 
} 
return result; 
 } 
/* 
* 解密 
* 
* */ 
public static async rsaDecrypt(message: string | Uint8Array, privateKey: string): Promise<string> { 
let result = ''; 
try { 
let asyKeyGenerator = cryptoFramework.createAsyKeyGenerator(this.ASY_KEY_NAME_RSA_3072); 
const privateKeyDataBlob = { data: this.decodeToUint8Array(privateKey) }; 
const keyPair = await asyKeyGenerator.convertKey(null, privateKeyDataBlob); 
let cipher = cryptoFramework.createCipher(this.ALG_NAME_RSA_3072); //创建一个 Cipher (解密)对象 
await cipher.init(cryptoFramework.CryptoMode.DECRYPT_MODE, keyPair.priKey, null); 
let bytes: Uint8Array = null; 
if (typeof message === 'string') { 
bytes = this.decodeToUint8Array(message); 
} else { 
bytes = message; 
} 
const finalRes = await cipher.doFinal({ data: bytes }) 
result = this.uint8ArrayToString(finalRes.data); 
} catch (err) { 
console.error(err.code) 
} 
return result; 
 }
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.

适配的版本信息

  • IDE:DevEco Studio 4.0.3.600
  • SDK:HarmoneyOS 4.0.10.10
分享
微博
QQ
微信
回复
2024-05-29 22:21:19
相关问题
HarmonyOS Native RSA 加解密实现咨询
284浏览 • 1回复 待解决
HarmonyOS 有RSA加解密相关吗
854浏览 • 0回复 待解决
HarmonyOS中有RSA加解密相关吗?
303浏览 • 0回复 待解决
HarmonyOS 有没有相关rsa加解密内容
301浏览 • 1回复 待解决
实现一次非对称RSA非对称加解密
1595浏览 • 1回复 待解决
HarmonyOS 是否有rsa加解密的例子?
286浏览 • 1回复 待解决
HarmonyOS 关于RSA公钥加解密问题
678浏览 • 1回复 待解决
HarmonyOS sm4、rsa加解密库及参考文档
1131浏览 • 1回复 待解决
huks密钥导入自定义密钥
675浏览 • 1回复 待解决
多种加密方式实现加解密
1399浏览 • 1回复 待解决
Huks如何导入AES的密钥
1144浏览 • 1回复 待解决
HarmonyOS RSA解密问题
804浏览 • 1回复 待解决