importjavax.crypto.Cipher;importjavax.crypto.spec.SecretKeySpec;importsun.misc.BASE64Decoder;importsun.misc.BASE64Encoder;/*** java使用AES加密解密 AES-128-ECB加密

* 与mysql数据库aes加密算法通用

* 数据库aes加密解密

* -- 加密

* SELECT to_base64(AES_ENCRYPT('www.gowhere.so','jkl;POIU1234++=='));

* -- 解密

* SELECT AES_DECRYPT(from_base64('Oa1NPBSarXrPH8wqSRhh3g=='),'jkl;POIU1234++==');

*@author836508

**/

public classMyAESUtil {//加密

public static String Encrypt(String sSrc, String sKey) throwsException {if (sKey == null) {

System.out.print("Key为空null");return null;

}//判断Key是否为16位

if (sKey.length() != 16) {

System.out.print("Key长度不是16位");return null;

}byte[] raw = sKey.getBytes("utf-8");

SecretKeySpec skeySpec= new SecretKeySpec(raw, "AES");

Cipher cipher= Cipher.getInstance("AES/ECB/PKCS5Padding");//"算法/模式/补码方式"

cipher.init(Cipher.ENCRYPT_MODE, skeySpec);byte[] encrypted = cipher.doFinal(sSrc.getBytes("utf-8"));return new BASE64Encoder().encode(encrypted);//此处使用BASE64做转码功能,同时能起到2次加密的作用。

}//解密

public static String Decrypt(String sSrc, String sKey) throwsException {try{//判断Key是否正确

if (sKey == null) {

System.out.print("Key为空null");return null;

}//判断Key是否为16位

if (sKey.length() != 16) {

System.out.print("Key长度不是16位");return null;

}byte[] raw = sKey.getBytes("utf-8");

SecretKeySpec skeySpec= new SecretKeySpec(raw, "AES");

Cipher cipher= Cipher.getInstance("AES/ECB/PKCS5Padding");

cipher.init(Cipher.DECRYPT_MODE, skeySpec);byte[] encrypted1 = new BASE64Decoder().decodeBuffer(sSrc);//先用base64解密

try{byte[] original =cipher.doFinal(encrypted1);

String originalString= new String(original,"utf-8");returnoriginalString;

}catch(Exception e) {

System.out.println(e.toString());return null;

}

}catch(Exception ex) {

System.out.println(ex.toString());return null;

}

}public static void main(String[] args) throwsException {/** 此处使用AES-128-ECB加密模式,key需要为16位。*/String cKey= "jkl;POIU1234++==";//需要加密的字串

String cSrc = "www.gowhere.so";

System.out.println(cSrc);//加密

String enString =MyAESUtil.Encrypt(cSrc, cKey);

System.out.println("加密后的字串是:" +enString);//解密

String DeString =MyAESUtil.Decrypt(enString, cKey);

System.out.println("解密后的字串是:" +DeString);

}

}

mysql的aes加密算法查询_java mysql 通用aes加密算法相关推荐

  1. java aes 工具类_Java中的AES加解密工具类:AESUtils

    本人手写已测试,大家可以参考使用 package com.mirana.frame.utils.encrypt; import com.mirana.frame.constants.SysConsta ...

  2. mysql与java的计算效率_java mysql数据库查询效率问题

    主要实现的功能是事先通过条件筛选一部分id出来,在通过遍历这些id找到相应的Bfinalstatement,存为对象,放入list,但是发现数据量才达到1000时(1000个Bfinalstateme ...

  3. mysql 约束0怎么设计_java mysql约束与设计

    回忆上周知识 mysql约束与设计 DDL:操作数据库和表 drop alter create DML:增删改数据库表的记录 insert update delete DQL:查询表中记录 selec ...

  4. mysql重连服务器失败_java – MySQL连接器错误“服务器时区值中...

    参见英文答案 > The server time zone value 'AEST' is unrecognized or represents more than one time zone? ...

  5. mysql 单表 子查询_MySQL基本SQL语句之单表查询、多表查询和子查询 | 旺旺知识库...

    一.简单查询: 基本语法: SELECT * FROM tb_name;查询全部 SELECT field1,field2 FROM tb_name; 投影 SELECT [DISTINCT] * F ...

  6. mysql 单表子查询语句_MySQL基本SQL查询语句:多表查询和子查询示例

    一.简单查询:基本语法: 代码如下 SELECT * FROM tb_name; 查询全部 代码如下 SELECT field1,field2 FROM tb_name; 投影 代码如下 SELECT ...

  7. mysql 子表 关联查询语句_MySQL基本SQL语句之单表查询、多表查询和子查询

    一.简单查询: 基本语法:SELECT * FROM tb_name;查询全部 SELECT field1,field2 FROM tb_name; 投影 SELECT [DISTINCT] * FR ...

  8. mysql 存储过程 输出warning_如何抑制MySQL存储过程的输出?

    要取消MySQL存储过程的输出,可以使用变量.让我们首先创建一个表.mysql> create table person_information -> ( -> Id int, -& ...

  9. java mysql语句_java mysql查询语句怎么写

    展开全部 1:使用SHOW语句找出在服务器上当前存在什么数据32313133353236313431303231363533e4b893e5b19e31333363373766库: mysql> ...

最新文章

  1. 观百工堰竹筏竞技比赛有感
  2. LINQ系列:LINQ to ADO.NET概述
  3. linux内核重要结构体,Linux中list_head结构体相关 | 技术部落
  4. 武汉理工计算机学院分数线,武汉理工今年计算机分数线
  5. transformer中attention计算方式_Transformer在推荐模型中的应用总结
  6. [转载] python改写二分搜索算法_二分搜索算法模板python实现
  7. Ta还没有分享呢,过段时间再来看看吧~ 解决办法
  8. Web浏览器测试,怎么提取测试点 - web测试方法总结
  9. python启动方法_python启动服务
  10. HTML5网页中的链接
  11. 滴滴是互联网届“最失败的垄断者”?
  12. 用微笑面对一切令你烦恼的人或事,不久之后,你会发现令你微笑的人或事变得越来越多了。
  13. 2022年执法资格通用法律知识考试判断题专项训练题及答案
  14. Vue3 + elementplus 分页组件英文改为中文
  15. RGB接口和MPU接口区别
  16. 深入理解java多态没有烤山药的存在,java就不香了吗?
  17. 在SQL SERVER 2000中实行简繁体转换
  18. SimpleDateFormat格式
  19. php 配置 memcache,php如何配置memcache
  20. 用python计算标普500期权的持有至到期delta对冲收益,参考Bakish(2003)

热门文章

  1. 【迷人的爪哇】——Java继承
  2. python循环引用解决 cannot import partially initialize
  3. 论人工智能历史、现状与未来发展战略
  4. 【2020】明哥版-JetBrains旗下常用开发工具教程目录更新中-建议收藏
  5. 码云修改密码后如何重置密码
  6. Currency Translation in Bex Query Variable 1
  7. 锂电池电压和电量的关系
  8. 新组装的电脑,主板灯亮,开机没反应
  9. 省选专练CF1027F Session in BSU
  10. poj2245Lotto