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;
  }
}
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%')
  }
}
分享
微博
QQ
微信
回复
2024-12-25 18:31:26
相关问题
HarmonyOS 中文base64加密解密乱码
1574浏览 • 1回复 待解决
HarmonyOS 如何做base64加密
1165浏览 • 1回复 待解决
HarmonyOS base64编码问题
1902浏览 • 1回复 待解决
HarmonyOS RSA加密base64秘钥转换
1756浏览 • 1回复 待解决
HarmonyOS 关于Image组件使用base64图片
3244浏览 • 1回复 待解决
HarmonyOS string怎么base64decodeBase64
781浏览 • 1回复 待解决
HarmonyOS AES加密相关
877浏览 • 1回复 待解决
HarmonyOS 图片压缩图片转base64
2000浏览 • 1回复 待解决
HarmonyOS 图片转base64
1175浏览 • 1回复 待解决
HarmonyOS base64转image
976浏览 • 1回复 待解决
有没有base64转化的相关代码?
1751浏览 • 1回复 待解决
HarmonyOS 图片Base64编码
1050浏览 • 1回复 待解决
HarmonyOS base64编解码
1288浏览 • 1回复 待解决
HarmonyOS base64解码报错
2310浏览 • 1回复 待解决
照片文件转Base64
1370浏览 • 1回复 待解决
HarmonyOS 音频文件base64编解码问题
1373浏览 • 1回复 待解决
HarmonyOS 网络传输BASE64转义问题
1048浏览 • 1回复 待解决
HarmonyOS base64编码的API
945浏览 • 1回复 待解决
HarmonyOS base64解码内容缺少
887浏览 • 1回复 待解决
HarmonyOS arraybuffer转base64乱码
1117浏览 • 1回复 待解决
HarmonyOS pixelMap怎么转base64
967浏览 • 1回复 待解决
HarmonyOS Image加载base64失败
1287浏览 • 1回复 待解决
HarmonyOS 图片进行base64编码报错
1607浏览 • 1回复 待解决