AES128加密失败问题?

import cryptoFramework from '@ohos.security.cryptoFramework';
import { BusinessError } from '@kit.BasicServicesKit';
import { util } from '@kit.ArkTS';


function stringToArray(str: string): Uint8Array {
  let textEncoder = new util.TextEncoder();
  return textEncoder.encodeInto(str);
}

@Entry
@Component
struct Index {
  @State message: string = 'Hello World';
  // LxamphMX2OpWNPZm

  async onData(str: string, iv: string){
    let cipherAlgName = 'AES128|CBC|PKCS5';
    try {
      let cipher = cryptoFramework.createCipher(cipherAlgName);
      let symKeyGenerator = cryptoFramework.createSymKeyGenerator('AES128');
      console.info('cipher algName:' + cipher.algName);
      let keyMaterial = new Uint8Array(stringToArray('LxamphMX2OpWNPZm'));
      try {
        let symKey = await symKeyGenerator.convertKey({
          data: keyMaterial
        });
        let ivParamsSpec = null;
        if (iv !== '') {
          // let ivData = {
          //   data: new Uint8Array(stringToArray(iv))
          // };
          // ivParamsSpec [''] = 'IvParamsSpec';
          // ivParamsSpec[iv] = ivData;
        }
        await cipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, symKey, ivParamsSpec);
        let res = await cipher.doFinal({
          data: new Uint8Array(stringToArray(str))
        });
        // return YumpUtil.uint8ArrayToBase64String(res.data);
        console.log('res.data>>23', JSON.stringify(res.data))
      }catch(error){
        console.log(`error:onData${JSON.stringify(error)}`);
      }
    } catch (error) {
      let e: BusinessError = error as BusinessError;
      console.error(`sync error, ${e.code}, ${e.message}`);
    }
  }

  build() {
    RelativeContainer() {
      Button('onData').onClick(() =>{
        this.onData('12369', '');
      })
      Text(this.message)
        .id('HelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })
    }
    .height('100%')
    .width('100%')
  }
}

本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。

阅读 601
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进