HarmonyOS 关于base64和aes加密相关问题

代码翻译成ArkTS

核心知识: Base64、AES、加密

尝试Base64Helper, 不太行

public class AESUtil {

  public static final String KEYT = "aaaaaaaaaaaa";

  private static final String MODEL = "AES/ECB/PKCS7Padding";

  public static String encode(String key, String content) {

  try {
  SecretKeySpec skeySpec = getKey(key);
  byte[] clearText = content.getBytes("UTF8");
  Cipher cipher = Cipher.getInstance(MODEL);
  cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
  byte[] result = cipher.doFinal(clearText);
  String encrypedValue = Base64.encodeToString(result, Base64.DEFAULT);
  return encrypedValue;
  } catch (Exception e) {
    e.printStackTrace();
  }
    return "";
  }

  public static String decode(String key, String content) {
    try {
      SecretKeySpec skeySpec = getKey(key);
      byte[] contentBytes = Base64.decode(content, Base64.DEFAULT);
      Cipher cipher = Cipher.getInstance(MODEL);
      cipher.init(Cipher.DECRYPT_MODE, skeySpec);
      byte[] result = cipher.doFinal(contentBytes);
      return new String(result);
    } catch (Exception e) {
      e.printStackTrace();
    }
    return "";
  }

  private static SecretKeySpec getKey(String password) throws UnsupportedEncodingException {
    // 128位加密
    int keyLength = 128;
    byte[] keyBytes = new byte[keyLength / 8];
    Arrays.fill(keyBytes, (byte) 0x0);
    byte[] passwordBytes = password.getBytes("UTF-8");
    int length = passwordBytes.length < keyBytes.length ? passwordBytes.length : keyBytes.length;
    System.arraycopy(passwordBytes, 0, keyBytes, 0, length);
    SecretKeySpec key = new SecretKeySpec(keyBytes, "AES");
    return key;
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
HarmonyOS
2024-12-25 17:01:11
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
FengTianYa

关于AES-ECB模式的加解密,可以参考一下这个demo:

index页面:

import { Utill } from '../ConvertUtil';

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

  aboutToAppear(): void {
    this.test()
  }

  async test(){
    // let data = `{"code":1,"msg":"123456","retJson":"{\"name\":\"黄康发\"}"}`
    let data = "还是觉得卡上打开缴纳税款见到你教案"
    console.log("=============== 原始数据 :"+data)
    // let eStr = await Utill.eAes(data)
    let eStr = await Utill.eAes(data,this.keys)
    console.log("=============== 加密后数据 :"+eStr)
    if(eStr!= undefined){
      // let dStr = await Utill.dAes(eStr)
      let dStr = await Utill.dAes(eStr,this.keys)
      console.log("=============== 解密后数据 :"+dStr)
    }
  }

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
分享
微博
QQ
微信
回复
2024-12-25 18:31:26
相关问题
HarmonyOS 如何做base64加密
930浏览 • 1回复 待解决
HarmonyOS 中文base64加密解密乱码
1327浏览 • 1回复 待解决
HarmonyOS base64编码问题
1390浏览 • 1回复 待解决
HarmonyOS RSA加密base64秘钥转换
1131浏览 • 1回复 待解决
HarmonyOS 关于Image组件使用base64图片
1459浏览 • 1回复 待解决
HarmonyOS string怎么base64decodeBase64
616浏览 • 1回复 待解决
HarmonyOS 图片压缩图片转base64
1167浏览 • 1回复 待解决
HarmonyOS 图片Base64编码
832浏览 • 1回复 待解决
HarmonyOS base64编解码
977浏览 • 0回复 待解决
HarmonyOS base64解码报错
1956浏览 • 1回复 待解决
HarmonyOS base64转image
754浏览 • 1回复 待解决
HarmonyOS 图片转base64
937浏览 • 1回复 待解决
有没有base64转化的相关代码?
1559浏览 • 0回复 待解决
HarmonyOS AES加密相关
665浏览 • 1回复 待解决
HarmonyOS 网络传输BASE64转义问题
863浏览 • 1回复 待解决
HarmonyOS 音频文件base64编解码问题
966浏览 • 1回复 待解决
照片文件转Base64
622浏览 • 1回复 待解决
HarmonyOS pixelMap怎么转base64
607浏览 • 1回复 待解决
HarmonyOS Image加载base64失败
944浏览 • 1回复 待解决
HarmonyOS base64编码的API
751浏览 • 1回复 待解决
HarmonyOS arraybuffer转base64乱码
860浏览 • 1回复 待解决
HarmonyOS base64解码内容缺少
621浏览 • 1回复 待解决
如何实现PixelMapbase64的相互转换
2799浏览 • 1回复 待解决