HarmonyOS 鸿蒙Next AES-CBC加解密

发布于 1周前 作者 vueper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next AES-CBC加解密

AegAesCbc.ohAegAesCbcEncText方法加密后输出Uint8Array格式 转string后乱码

3 回复

aes ebc 参考此代码demo实例


import { buffer, util } from '[@kit](/user/kit).ArkTS';

[@Entry](/user/Entry)

[@Component](/user/Component)

struct AESCBCCrypto {

  [@State](/user/State) message: string = '点击开始';

  build() {

    Row() {

      Column() {

        Text(this.message)

          .fontSize(50)

          .fontWeight(FontWeight.Bold)

          .onClick(() => {

            // aesEBC()

          })

      }

      .width('100%')

    }

    .height('100%')

  }

}

async function aesEBC() {

  try {

    // symKey 为服务器传入公钥  plainText 为 需要加密的明文

    let encryptText = encryptMessage(symKey, plainText);

    let decryptText = decryptMessage(symKey, encryptText);

    if (plainText.data.toString() === decryptText.data.toString()) {

      console.info('decrypt ok');

      console.info('decrypt ok');

      console.info('decrypt plainText: ' + buffer.from(decryptText.data).toString('utf-8'));

    } else {

      console.error('decrypt failed');

    }

  }catch (error){

    console.error(JSON.stringify(error));

  }

}

// 加密消息

function encryptMessage(symKey: cryptoFramework.SymKey, plainText: cryptoFramework.DataBlob) {

  let cipher = cryptoFramework.createCipher('AES128|ECB|PKCS7');

  cipher.initSync(cryptoFramework.CryptoMode.ENCRYPT_MODE, symKey, null);

  let cipherData = cipher.doFinalSync(plainText);

  return cipherData;

}

// 解密消息

function decryptMessage(symKey: cryptoFramework.SymKey, cipherText: cryptoFramework.DataBlob) {

  let decoder = cryptoFramework.createCipher('AES128|ECB|PKCS7');

  decoder.initSync(cryptoFramework.CryptoMode.DECRYPT_MODE, symKey, null);

  let decryptData = decoder.doFinalSync(cipherText);

  return decryptData;

}
ByteArray 通过base64转为string

在HarmonyOS鸿蒙Next系统中进行AES-CBC加解密操作时,需要确保使用正确的加密库和配置参数。AES(高级加密标准)是一种广泛应用的对称加密算法,而CBC(Cipher Block Chaining)模式则是AES的一种工作模式,它通过将前一个密文块与当前明文块结合进行加密,来增强安全性。

在HarmonyOS开发中,可以使用系统提供的加密API来实现AES-CBC加解密。具体步骤如下:

  1. 引入加密库:确保项目中已经引入了必要的加密库,通常是系统自带的加密模块。

  2. 设置密钥和IV(初始化向量):AES-CBC模式需要一个密钥和一个IV,它们通常是由开发者指定或通过安全方式生成的。

  3. 配置加密参数:指定加密算法为AES,模式为CBC,并设置填充方式(如PKCS5Padding)。

  4. 执行加解密操作:使用加密库提供的接口进行加解密,确保传入正确的明文、密钥、IV和参数。

  5. 处理异常:捕获并处理可能发生的加密异常,如密钥不匹配、数据格式错误等。

如果上述步骤正确无误,但在实际操作中遇到问题,可能是由于特定环境下的配置差异或库版本问题。此时,建议详细检查错误日志,并参考HarmonyOS官方文档进行排查。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。

回到顶部