HarmonyOS 端的加密API的参数该如何设置,以达到如上java的加密效果?

如题:HarmonyOS 端的加密API的参数该如何设置,以达到如上java的加密效果?

阅读 650
1 个回答

请参考:

export async function aesEncryptECB(text: Uint8Array, puKey: string): Promise<string> {
  let globalResult = ""
  try {
    let cipherAlgName = 'AES128|ECB|PKCS7';
    let globalCipher = cryptoFramework.createCipher(cipherAlgName);
    let symAlgName = 'AES128';
    let symKeyGenerator = cryptoFramework.createSymKeyGenerator(symAlgName);
    let dataUint8Array = HexStrTouint8Array(puKey)
    let keyBlob: cryptoFramework.DataBlob = { data: dataUint8Array }
    let promiseSymKey = await symKeyGenerator.convertKey(keyBlob)
    await globalCipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, promiseSymKey, null);
    let result = await globalCipher.doFinal({ data: text })
    globalResult = uint8ArrayToHexStr(result.data);
    //5b9388cdaf54b785118cb512e3ef7c7a6e1e4f3dbece17d614318681bc9bb68db3f4c339e5deab5936d379aef361ab48
  } catch (err) {
    console.log(err.message)
  }
  return globalResult;
}

//Uint8Array转十六进制
export function uint8ArrayToHexStr(data: Uint8Array): string {
  return buffer.from(data).toString('hex');
}

//十六进制转Uint8Array
export function HexStrTouint8Array(data: string): Uint8Array {
  return new Uint8Array(buffer.from(data, 'hex').buffer);
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进