9.如何用系统库@ohos.security.cryptoFramework 实现RSA加密?
【环境】系统:HarmonyOS Next Beta ,SDK:API12。【问题】如何用系统库。
·
【问题】如何用系统库 @ohos.security.cryptoFramework 实现RSA加密?
【环境】系统:HarmonyOS Next Beta ,SDK:API12
【解决方法】
/*
* RSA加密
* @param content:待加密内容
* @param key: 公钥字符串
* */
async RSAEncryptToString(content : string, key : string) : Promise<string> {
let base64Helper = new util.Base64Helper();
let pubKeyBlob: cryptoFramework.DataBlob = { data: base64Helper.decodeSync(key) };
// 将公钥包装数据pubKeyBlob转换成密钥对类型KeyPair
let rsaGenerators = cryptoFramework.createAsyKeyGenerator("RSA512|PRIMES_2");
let keyPair = await rsaGenerators.convertKey(pubKeyBlob, null);
// 创建 Cipher对象
let cipher = cryptoFramework.createCipher("RSA512|PKCS1");
// 初始化加密模式,指定密钥keyPair.pubKey
await cipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, keyPair.pubKey, null);
// 包装要加密的明文
let plainTextBlob: cryptoFramework.DataBlob = { data: new Uint8Array(buffer.from(content, 'utf-8').buffer) };
// 传入明文,获取加密后的数据
let encryptBlob = await cipher.doFinal(plainTextBlob);
// 返回加密后的字符串
return base64Helper.encodeToStringSync(encryptBlob.data);
}
更多推荐

所有评论(0)