zoukankan      html  css  js  c++  java
  • 后端使用aes 加密

    package com.midea.ccs.mobile.tools.impl;

    import org.apache.commons.codec.binary.Hex;

    import javax.crypto.Cipher;
    import javax.crypto.spec.SecretKeySpec;
    import java.security.Key;


    public class AesUtil {
    /**
    * Description: 加密操作 <br>
    *
    * @param data 待加密数据
    * @param key 密钥
    * @return 加解密后的信息
    * @throws Exception <br>
    */
    public static byte[] encrypt(byte[] data, byte[] key)
    throws Exception {
    Key secretKey = new SecretKeySpec(key, "AES");
    Cipher cipher = Cipher.getInstance("AES");
    cipher.init(Cipher.ENCRYPT_MODE, secretKey);
    return cipher.doFinal(data);
    }

    /**
    * Description: 解密操作 <br>
    *
    * @param data 待解密数据
    * @param key 密钥
    * @return 解密后的信息
    * @throws Exception <br>
    */
    public static byte[] decrypt(byte[] data, byte[] key)
    throws Exception {
    Key secretKey = new SecretKeySpec(key, "AES");
    Cipher cipher = Cipher.getInstance("AES");
    cipher.init(Cipher.DECRYPT_MODE, secretKey);
    return cipher.doFinal(data);
    }

    /**
    * Description: 加密操作 <br>
    *
    * @param data 待加密数据
    * @param key 密钥
    * @return 加解密后的信息,16进制
    * @throws Exception <br>
    */
    public static String encryptHex(String data, String key)
    throws Exception {
    byte[] bytes = encrypt(data.getBytes(), key.getBytes());
    return Hex.encodeHexString(bytes);
    }

    /**
    * Description: 解密操作 <br>
    *
    * @param data 待解密数据
    * @param key 密钥
    * @return 解密后的信息,16进制
    * @throws Exception <br>
    */
    public static String decryptHex(String data, String key)
    throws Exception {
    byte[] datas = Hex.decodeHex(data.toCharArray());
    byte[] bytes = decrypt(datas, key.getBytes());
    return new String(bytes, "utf-8");
    }


    public static void main(String[] args) throws Exception {
    //2f3e660c0ff68c9fcec4e1bd511c3d3e
    String md5 = "067d1e0c2512a009";
    String mobile = "15994583505";

    String hex = encryptHex(mobile, md5);

    decryptHex(hex, md5);

    }

    }

  • 相关阅读:
    选择Nodejs的N个理由
    linux下查看内存的命令
    Nginx反向代理和负载均衡部署指南
    linux下创建,删除,移动文件命令
    linux文件创建、查看、编辑命令
    Linux下rar命令详解
    linux下tar命令详解
    linux下使用tar命令
    Eclispe怎么给工作空间下的项目分组
    MAT(Memory Analyzer Tool)工具入门介绍
  • 原文地址:https://www.cnblogs.com/zhangzonghua/p/9302211.html
Copyright © 2011-2022 走看看