如何使用服务端下发的RSA公钥(字符串)对明文数据进行加密

​如何使用服务端下发的RSA公钥(字符串)对明文数据进行加密

HarmonyOS
2024-03-18 21:59:30
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

将服务器下发的RSA公钥字符串替换掉pubKeyStr即可实现,具体可参考如下代码:

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 = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFQArGDm5BXM4jHHuZGIb/kUoqrSjXkjqPLgrDmqBFxNyYsyxvyFRO10nStQwdRkQkh5lZ5sqC1G/z6lyDPpEySTBo9S5GLZ2Tj4yinNjcMXmOwiHfyQAQo9LwdlyTedwRchg0fYewWBVTVhGcWPowT1aA+GnQhYwNmaS/iKQsNQIDAQAB"; 
  // 初始化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); 
}

参考链接

使用RSA非对称密钥(PKCS1模式)加解密

分享
微博
QQ
微信
回复
2024-03-19 21:44:33
相关问题
如何字符串进行MD5哈希处理
290浏览 • 1回复 待解决
sql 怎么带单位字符串排序?
690浏览 • 1回复 待解决
如何生成UUID字符串
255浏览 • 1回复 待解决
如何加载字符串形式H5数据
229浏览 • 1回复 待解决
Web如何使用loadData加载复杂Html字符串
320浏览 • 1回复 待解决
eTS中如何进行时间与字符串转换?
1935浏览 • 1回复 待解决
如何实现字符串编解码
256浏览 • 1回复 待解决
ArkTS如何实现字符串编解码
417浏览 • 1回复 待解决
如何实现ArkUI组件字符串变量拼接
377浏览 • 1回复 待解决
关于字符串分割和重组处理
1954浏览 • 1回复 待解决
mysql替换字符串问题有知道吗?
1501浏览 • 1回复 待解决
tp5 如何post传参进行加密
466浏览 • 1回复 待解决
mysql order对数字型字符串排序
603浏览 • 1回复 待解决
json字符串与自定义class结构转换
52浏览 • 1回复 待解决
base64字符串如何转为图片并保存
322浏览 • 1回复 待解决