HarmonyOS RSA解密问题

这个所应用的解密方法能不能写一个公开出来一下

import { buffer, util } from '@kit.ArkTS'; 
import { cryptoFramework } from '@kit.CryptoArchitectureKit'; 
/** 
 * 使用RSA非对称密钥(PKCS1模式)加密 
 * @param message 要加密的明文数据 
 * @returns 加密后的字符串,base64编码 
 */ 
export async function encryptRSA(message: string) { 
  // 服务器下发RSA公钥字符串(base64编码) 
  let pubKeyStr = "MIGfMA0GCSqGSIb3DQEBAQUAxxxxxxxxxxxxxCBiQKBgQDFQArxxxBXM4jHHuZGIb/kxxxxSjXkjqPLgrDmqBFxNyYxxxxO10nStQwdRkQkh5lZ5sqC1G/z6lyDPxxxx5GLZ2Tj4yinNjcMXmOwiHfyQAQo9LwdlyTedwRchg0fYexxxxxxxcWPowT1aA+GnQhYwNmaS/iKQsNxxxxQAB"; 
  // 初始化Base64工具实例 
  let base64Helper = new util.Base64Helper(); 
  // 公钥转换为Uint8Array,然后包装为DataBlob类型 
  let pubKeyBlob: cryptoFramework.DataBlob = { data: base64Helper.decodeSync(pubKeyStr) }; 
  // 创建RSA key生成器 
  let rsaGenerator = cryptoFramework.createAsyKeyGenerator('RSA1024'); 
  // 将公钥包装数据pubKeyBlob转换成密钥对类型KeyPair 
  let keyPair = await rsaGenerator.convertKey(pubKeyBlob, null); 
  // 创建 Cipher对象 
  let cipher = cryptoFramework.createCipher('RSA1024|PKCS1'); 
  // 初始化加密模式,指定密钥keyPair.pubKey 
  await cipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, keyPair.pubKey, null); 
  // 包装要加密的明文 
  let plainTextBlob: cryptoFramework.DataBlob = { data: new Uint8Array(buffer.from(message, 'utf-8').buffer) }; 
  // 传入明文,获取加密后的数据 
  let encryptBlob = await cipher.doFinal(plainTextBlob); 
  // 返回加密后的字符串 
  return base64Helper.encodeToStringSync(encryptBlob.data); 
}
  • 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.
HarmonyOS
2024-08-13 15:02:26
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
Heiang

解密的示例代码请参考:

async decryptRSA(text: string) { 
  try { 
    let decoder = cryptoFramework.createCipher('RSA1024|PKCS1'); 
    await decoder.init(cryptoFramework.CryptoMode.DECRYPT_MODE, this.keyPair!.priKey, null); 
    let Base64Helper = new util.Base64Helper() 
    let jiemessage = Base64Helper.decodeSync(text) 
    let decryptData = await decoder.doFinal({ data: jiemessage }); 
    let decryptDataString = this.convertUnit8ArrayToString(decryptData.data) 
    return decryptDataString 
  } catch (e) { 
    console.log('error:' + JSON.stringify(e)) 
    return '' 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
分享
微博
QQ
微信
回复
2024-08-13 21:01:57
相关问题
HarmonyOSRSA解密问题
263浏览 • 0回复 待解决
HarmonyOS 关于RSA公钥加解密问题
670浏览 • 1回复 待解决
HarmonyOS RSA解密数据
238浏览 • 1回复 待解决
HarmonyOS RSA公钥解密
559浏览 • 1回复 待解决
HarmonyOS RSA私钥加密公钥解密
640浏览 • 1回复 待解决
HarmonyOS RSA如何用公钥解密
1230浏览 • 0回复 待解决
HarmonyOS rsa解密速度过于缓慢
1115浏览 • 1回复 待解决
HarmonyOSRSA解密相关吗
849浏览 • 0回复 待解决
HarmonyOS中有RSA解密相关吗?
298浏览 • 0回复 待解决
HarmonyOSRSA如何用公钥解密
418浏览 • 0回复 待解决
HarmonyOS 有没有相关rsa解密内容
293浏览 • 1回复 待解决
RSA导入外部密钥实现加解密
1207浏览 • 1回复 待解决
HarmonyOS 是否有rsa解密的例子?
283浏览 • 1回复 待解决
HarmonyOS 支持rsa使用公钥解密
845浏览 • 1回复 待解决
HarmonyOS Native RSA解密实现咨询
281浏览 • 1回复 待解决
RSA加密,使用自有私钥解密报错
704浏览 • 1回复 待解决
rsa 公钥解密初始化报错
791浏览 • 1回复 待解决
HarmonyOS RSA使用问题
187浏览 • 1回复 待解决
HarmonyOS sm4、rsa等加解密库及参考文档
1126浏览 • 1回复 待解决
HarmonyOS RSA加密失败问题
445浏览 • 1回复 待解决
实现一次非对称RSA非对称加解密
1593浏览 • 1回复 待解决