您现在的位置:首页 >> 基础 >> Java编程 >> 内容

mysql AES加密和javaAES加密保持一致--Java学习网

时间:2016-7-28 12:53:07

  核心提示:public class ChilkatExample {public static SecretKeySpec generateMySQLAESKey(final String key, final...
public class ChilkatExample {
    public static SecretKeySpec generateMySQLAESKey(final String key, final String encoding) {
        try {
            final byte[] finalKey = new byte[16];
            int i = 0;
            for(byte b : key.getBytes(encoding))
                finalKey[i++%16] ^= b;         
            return new SecretKeySpec(finalKey, "AES");
        } catch(UnsupportedEncodingException e) {
            throw new RuntimeException(e);
        }
    }
  
    public static void main(String... args) throws Exception {
        // Decrypt
        final Cipher decryptCipher = Cipher.getInstance("AES");                        
        decryptCipher.init(Cipher.DECRYPT_MODE, generateMySQLAESKey("simu800", "UTF-8"));
        System.out.println(new String(decryptCipher.doFinal(Hex.decodeHex("312095A28FAAAE46C2FF6EB956E618C6".toCharArray()))));
  
         
        // Encrypt
        final Cipher encryptCipher = Cipher.getInstance("AES");                        
        encryptCipher.init(Cipher.ENCRYPT_MODE, generateMySQLAESKey("simu800", "UTF-8"));      
        System.out.println(Hex.encodeHex(encryptCipher.doFinal("zhang".getBytes("UTF-8"))));
        System.out.println(String.format("Select aes_decrypt(unhex('%s'), 'simu800');", new String(Hex.encodeHex(encryptCipher.doFinal("张龙古龙".getBytes("UTF-8"))))));
    }
}

Java免费学习   Java自学网 http://www.javalearns.com

关注微信号:javalearns   随时随地学Java

或扫一扫

随时随地学Java

作者:不详 来源:网络
    你是从哪里知道本网站的?
  • 网友介绍的
  • 百度搜索的
  • Google搜索的
  • 其它搜索过来的
  • 网址输错了进来的
  • 太忙了不记得了
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
  • java学习网(www.javalearns.com) © 2014 版权所有 All Rights Reserved.
  • Email:javalearns@163.com 站长QQ:1356121699 晋ICP备14003680号-3
  • java学习网部分内容来自网络或网友发布,如侵犯了您利益,请发邮件至:javalearns@126.com,我们尽快处理!
  • Java学习网
  • 网站统计
  • 晋公网安备 14042902000001号