HarmonyOS 如何针对服务端下发的RSA公钥字符串进行转换,生成加密所需的密钥对(keyPair)

服务端下发RSA公钥(字符串),前端需要对明文数据进行加密,如何对这个公钥进行转换?

HarmonyOS
7天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
shlp

参考如下(传入公钥导入然后加密):

let base = new util.Base64Helper();
let pubKey = "MIIBIjANBgkqhkiS9w0EAQFFAAOCAQ8AMIIBCgKCAQEAlj8tCgrUgbdEHNs7poNVQQbmWtlL74scoz0pEuV57WqLSh7l3r9+8fqslOmE2KKlDJFngIHYenH9+YoD1PdAXSovmKLrAqRGFJXabeoP8piCwbvCIL8XqSCAYq7r9QCW7KL6TIq0FUcAZJa4uM5eQl9+z/74NqcqimsMAFbM17NWQJ+wjHt73/aPr/zpQ2asfZacIzg4JyVNbO7+c7irl6OjUmpyCeXZLyrwMZsdlncPOFdWMyHTklNxOgP7sKgJEe+JRffKGIzbD5zIWhU7GwhfD0QvQ6Q4Px2eHy13lJ1PDbUpMstJt0uSFUQ8K4tE7FkNQxfYVjRLu4Hbyy39qQIDAQAB";
let asyKeyGenerator = cryptoFramework.createAsyKeyGenerator("RSA1024");
let cipher = cryptoFramework.createCipher("RSA1024|PKCS1"); //创建一个 Cipher (解密)对象
//引入外部的公钥加密
let publicKeyDataBlob:cryptoFramework.DataBlob = { data: base.decodeSync(pubKey) };
let keyGenPromise: cryptoFramework.KeyPair = await asyKeyGenerator.convertKey(publicKeyDataBlob, null);
await cipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, keyGenPromise.pubKey, null);
let put: cryptoFramework.DataBlob = { data: stringToUint8Array("加密内容sadad") };
const finalRes = await cipher.doFinal(put)
let result = base.encodeToStringSync(finalRes.data);
分享
微博
QQ
微信
回复
7天前
相关问题
List上展示服务端下发HTML字符串
273浏览 • 1回复 待解决
HarmonyOS RSA私钥加密解密
130浏览 • 1回复 待解决
HarmonyOS 加密字符串格式转换
142浏览 • 1回复 待解决
如何使用RSA加密明文数据
566浏览 • 1回复 待解决
如何实现RSAPK加密一段文字
707浏览 • 1回复 待解决
HarmonyOS RSA加密base64秘转换
118浏览 • 1回复 待解决
HarmonyOS 服务端JSON字符串解析问题
653浏览 • 1回复 待解决
HarmonyOS RSA解密
71浏览 • 1回复 待解决
如何生成UUID字符串
2314浏览 • 1回复 待解决
如何常见密钥进行格式转换
819浏览 • 1回复 待解决
HarmonyOS RSA如何解密
724浏览 • 0回复 待解决