当前位置:   article > 正文

HarmonyOS —— AES 加解密实现_harmony aes

harmony aes

前言 

harmony AES 实现相对简单直观,开发流程大致如下:

  1. 创建对称密钥生成器。
  2. 通过密钥生成器随机生成对称密钥。
  3. 创建加解密生成器。
  4. 通过加解密生成器加密或解密数据。

加密实现

  1. static async encrypt(password: Uint8Array, clearText: Uint8Array, iv: Uint8Array): Promise<Uint8Array> {
  2. try {
  3. //1.创建密钥生成器
  4. let generator = cryptoFramework.createSymKeyGenerator('AES128')
  5. //2.使用密钥生成器将密钥转换成 cryptoFramework.SymKey
  6. let key = await generator.convertKey({ data: password })
  7. //3.生成 iv等算法参数
  8. let paramsSpec: cryptoFramework.IvParamsSpec = { iv: { data: iv }, algName: "IvParamsSpec" }
  9. //4.创建cipher
  10. let aesCipher = cryptoFramework.createCipher('AES128|CBC|PKCS5')
  11. //5.init cipher
  12. await aesCipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, key, paramsSpec)
  13. //6.aes 加密
  14. let encryptText = await aesCipher.doFinal({ data: clearText })
  15. return encryptText.data
  16. } catch (error) {
  17. return new Uint8Array()
  18. }
  19. }

解密实现

  1. static async decrypt(password: Uint8Array, cipherText: Uint8Array, iv: Uint8Array): Promise<Uint8Array> {
  2. try {
  3. //1.创建密钥生成器
  4. let generator = cryptoFramework.createSymKeyGenerator('AES128')
  5. //2.使用密钥生成器将密钥转换成 cryptoFramework.SymKey
  6. let key = await generator.convertKey({ data: password })
  7. //3.生成 iv等算法参数
  8. let paramsSpec:cryptoFramework.IvParamsSpec = { iv: { data: iv }, algName: "IvParamsSpec" }
  9. //4.创建cipher
  10. let aesCipher = cryptoFramework.createCipher('AES128|CBC|PKCS5')
  11. //5.init cipher
  12. await aesCipher.init(cryptoFramework.CryptoMode.DECRYPT_MODE, key, paramsSpec)
  13. //6.解密
  14. let clearText = await aesCipher.doFinal({ data: cipherText})
  15. //7.返回解密结果
  16. return clearText.data
  17. } catch (error) {
  18. return new Uint8Array()
  19. }
  20. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/279961
推荐阅读
相关标签
  

闽ICP备14008679号