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加密
495浏览 • 1回复 待解决
HarmonyOS 中文base64加密解密乱码
902浏览 • 1回复 待解决
HarmonyOS base64编码问题
938浏览 • 1回复 待解决
HarmonyOS 关于Image组件使用base64图片
720浏览 • 1回复 待解决
HarmonyOS RSA加密base64秘钥转换
433浏览 • 1回复 待解决
HarmonyOS string怎么base64decodeBase64
305浏览 • 1回复 待解决
HarmonyOS 图片压缩图片转base64
606浏览 • 1回复 待解决
HarmonyOS base64编解码
377浏览 • 0回复 待解决
HarmonyOS base64解码报错
1423浏览 • 1回复 待解决
HarmonyOS 图片Base64编码
415浏览 • 1回复 待解决
HarmonyOS 图片转base64
463浏览 • 1回复 待解决
HarmonyOS base64转image
390浏览 • 1回复 待解决
有没有base64转化的相关代码?
1119浏览 • 0回复 待解决
HarmonyOS AES加密相关
217浏览 • 1回复 待解决
HarmonyOS 网络传输BASE64转义问题
341浏览 • 1回复 待解决
HarmonyOS 音频文件base64编解码问题
362浏览 • 1回复 待解决
HarmonyOS pixelMap怎么转base64
101浏览 • 1回复 待解决
HarmonyOS Image加载base64失败
389浏览 • 1回复 待解决
照片文件转Base64
215浏览 • 1回复 待解决
HarmonyOS arraybuffer转base64乱码
477浏览 • 1回复 待解决
HarmonyOS base64编码的API
418浏览 • 1回复 待解决
HarmonyOS base64解码内容缺少
299浏览 • 1回复 待解决
如何实现PixelMapbase64的相互转换
2247浏览 • 1回复 待解决