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
1天前
浏览
收藏 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
微信
回复
1天前
相关问题
HarmonyOS 如何做base64加密
29浏览 • 1回复 待解决
HarmonyOS 中文base64加密解密乱码
601浏览 • 1回复 待解决
HarmonyOS base64编码问题
672浏览 • 1回复 待解决
HarmonyOS 关于Image组件使用base64图片
268浏览 • 1回复 待解决
HarmonyOS string怎么base64decodeBase64
70浏览 • 1回复 待解决
HarmonyOS RSA加密base64秘钥转换
20浏览 • 1回复 待解决
HarmonyOS 图片压缩图片转base64
341浏览 • 1回复 待解决
HarmonyOS base64解码报错
1064浏览 • 1回复 待解决
HarmonyOS base64编解码
43浏览 • 0回复 待解决
HarmonyOS 图片Base64编码
75浏览 • 1回复 待解决
HarmonyOS AES加密相关
36浏览 • 1回复 待解决
HarmonyOS base64转image
84浏览 • 1回复 待解决
HarmonyOS 图片转base64
109浏览 • 1回复 待解决
有没有base64转化的相关代码?
847浏览 • 0回复 待解决
HarmonyOS 网络传输BASE64转义问题
78浏览 • 1回复 待解决
HarmonyOS 音频文件base64编解码问题
35浏览 • 1回复 待解决
HarmonyOS Image加载base64失败
37浏览 • 1回复 待解决
HarmonyOS base64编码的API
214浏览 • 1回复 待解决
HarmonyOS arraybuffer转base64乱码
185浏览 • 1回复 待解决
如何实现PixelMapbase64的相互转换
1874浏览 • 1回复 待解决
HarmonyOS 二维码显示导出base64
54浏览 • 1回复 待解决
HarmonyOS 图片进行base64编码报错
735浏览 • 1回复 待解决