返回列表 发新帖

ACE 加解密

[复制链接]

307

主题

3287

帖子

1万

积分

博士生

大佬

Rank: 7Rank: 7Rank: 7

金币
557
好评
49
贡献
0

考神MT论坛最佳新人MT论坛帅哥MT论坛活跃会员MT论坛灌水老大

发表于 2021-2-6 01:08:47 来自手机  | 显示全部楼层 | 阅读模式
  1. AES加解密

  2. public class AES{

  3.     // 加密
  4.     public static String Encrypt(String sSrc, String sKey) throws Exception {
  5.         if (sKey == null) {
  6.             System.out.print("Key为空null");
  7.             return null;
  8.         }
  9.         // 判断Key是否为16位
  10.         if (sKey.length() != 16) {
  11.             System.out.print("Key长度不是16位");
  12.             return null;
  13.         }
  14.         byte[] raw = sKey.getBytes();
  15.         SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
  16.         Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
  17.         IvParameterSpec iv = new IvParameterSpec("0102030405060708".getBytes());
  18.         cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
  19.         byte[] encrypted = cipher.doFinal(sSrc.getBytes());


  20.         return byte2hex(encrypted).toLowerCase();
  21.     }


  22.     // 解密
  23.     public static String Decrypt(String sSrc, String sKey) throws Exception {
  24.         try {
  25.             // 判断Key是否正确
  26.             if (sKey == null) {
  27.                 System.out.print("Key为空null");
  28.                 return null;
  29.             }
  30.             // 判断Key是否为16位
  31.             if (sKey.length() != 16) {
  32.                 System.out.print("Key长度不是16位");
  33.                 return null;
  34.             }
  35.             byte[] raw = sKey.getBytes("ASCII");
  36.             SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
  37.             Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
  38.             IvParameterSpec iv = new IvParameterSpec("0102030405060708"
  39.                                                                                                          .getBytes());
  40.             cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
  41.             byte[] encrypted1 = hex2byte(sSrc);
  42.             try {
  43.                 byte[] original = cipher.doFinal(encrypted1);
  44.                 String originalString = new String(original);
  45.                 return originalString;
  46.             } catch (Exception e) {
  47.                 return null;
  48.             }
  49.         } catch (Exception ex) {
  50.             return null;
  51.         }
  52.     }


  53.     public static byte[] hex2byte(String strhex) {
  54.         if (strhex == null) {
  55.             return null;
  56.         }
  57.         int l = strhex.length();
  58.         if (l % 2 == 1) {
  59.             return null;
  60.         }
  61.         byte[] b = new byte[l / 2];
  62.         for (int i = 0; i != l / 2; i++) {
  63.             b[i] = (byte) Integer.parseInt(strhex.substring(i * 2, i * 2 + 2),
  64.                                                                                    16);
  65.         }
  66.         return b;
  67.     }


  68.     public static String byte2hex(byte[] b) {
  69.         String hs = "";
  70.         String stmp = "";
  71.         for (int n = 0; n < b.length; n++) {
  72.             stmp = (java.lang.Integer.toHexString(b[n] & 0XFF));
  73.             if (stmp.length() == 1) {
  74.                 hs = hs + "0" + stmp;
  75.             } else {
  76.                 hs = hs + stmp;
  77.             }
  78.         }
  79.         return hs.toUpperCase();
  80.     }
  81.         }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
收各方大佬,会不同技术的,有意联系我企鹅,只负责分享资源无脑喷子xxs 勿来。
回复

使用道具 举报

2

主题

357

帖子

1843

积分

高中生

Rank: 4

金币
205
好评
2
贡献
0
发表于 2021-2-6 14:38:34 来自手机  | 显示全部楼层
回复

使用道具 举报

9

主题

860

帖子

3426

积分

大学生

Rank: 5Rank: 5

金币
1268
好评
3
贡献
0
QQ
发表于 2021-2-7 10:45:49 来自手机  | 显示全部楼层
感谢分享
回复

使用道具 举报

5

主题

44

帖子

112

积分

小学生

Rank: 2

金币
32
好评
0
贡献
0
发表于 2021-2-7 22:25:38 来自手机  | 显示全部楼层
多谢大佬
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表