以下代码在入参相同的情况下,为什么每次解密返回的结果是不同的呢?

以下代码在入参相同的情况下,为什么每次解密返回的结果是不同的呢?

static async rsaEncryptBySegment(pubKey: cryptoFramework.PubKey, plainText: cryptoFramework.DataBlob) : Promise<cryptoFramework.DataBlob> { 
  let cipher = cryptoFramework.createCipher('RSA1024|ECB|PKCS1'); 
  await cipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, pubKey, null); 
  let plainTextSplitLen = 117; 
  let cipherText = new Uint8Array(); 
  for (let i = 0; i < plainText.data.length; i += plainTextSplitLen) { 
  let updateMessage = plainText.data.subarray(i, i + plainTextSplitLen); 
  let updateMessageBlob: cryptoFramework.DataBlob = { data: updateMessage }; 
  // 将原文按64字符进行拆分,循环调用doFinal进行加密,使用1024bit密钥时,每次加密生成128字节长度的密文 
  let updateOutput = await cipher.doFinal(updateMessageBlob); 
  let mergeText = new Uint8Array(cipherText.length + updateOutput.data.length); 
  mergeText.set(cipherText); 
  mergeText.set(updateOutput.data, cipherText.length); 
  cipherText = mergeText; 
  let base64Str = new util.Base64Helper().encodeToStringSync(cipherText) 
  // base 64 字符串 16进制字符串 
  let hex = buffer.from(cipherText).toString('hex') 
  let sss = 111 
} 
let cipherBlob: cryptoFramework.DataBlob = { data: cipherText }; 
return cipherBlob; 
}
HarmonyOS
2024-11-08 11:08:51
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

rsa是非对称加密,每次结果是不一致的。

分享
微博
QQ
微信
回复
2024-11-08 16:55:08
相关问题
以下代码导致程序崩溃了
505浏览 • 1回复 待解决
什么情况下使用?
621浏览 • 1回复 待解决
ForEach什么情况下会触发复用
748浏览 • 2回复 待解决
什么情况下会使用多Module
2371浏览 • 1回复 待解决