100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > MySQl数据库使用AES加密解密配Java代码使用

MySQl数据库使用AES加密解密配Java代码使用

时间:2023-02-02 08:34:11

相关推荐

MySQl数据库使用AES加密解密配Java代码使用

MySQl数据库加密解密

待加密字段varchar

INSERT INTO base_info(id,school_db_host) VALUES('1111254',HEX(AES_ENCRYPT(('要加密的'),'coco') )); SELECT AES_DECRYPT(UNHEX(school_db_host), 'coco') FROM base_info;

待加密字段varbinary

INSERT INTO base_info(id,school_db_host) VALUES('111254',AES_ENCRYPT(('要加密的'),'coco')); SELECT AES_DECRYPT(school_db_host, 'coco') FROM base_info;

Java代码加密解密配合使用

import java.io.UnsupportedEncodingException;import javax.crypto.Cipher;import javax.crypto.spec.SecretKeySpec;import mons.codec.binary.Hex;/**通常mysql中AES加密,和java中不一致,* 也就是说mysql中AES加密的东西,copy出来,* 用java代码不能解密* 下面大佬就来秀一波操作* */public class AESUtil {/**加密的Key*/private static String AESKEY = "zhfw_700";/**同意是用的编码*/private static String AESCODE = "UTF-8";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);}}/**AES 解密* data : 待解密的数据 * */public static String decrpt(String data) throws Exception {// Decryptfinal Cipher decryptCipher = Cipher.getInstance("AES");decryptCipher.init(Cipher.DECRYPT_MODE, generateMySQLAESKey(AESKEY, AESCODE));return new String(decryptCipher.doFinal(Hex.decodeHex(data.toCharArray())));}/**AES加密* data : 待加密 的数据 * */public static String encrpt(String data) throws Exception {// Encryptfinal Cipher encryptCipher = Cipher.getInstance("AES");encryptCipher.init(Cipher.ENCRYPT_MODE, generateMySQLAESKey(AESKEY, AESCODE)); char[] code= Hex.encodeHex(encryptCipher.doFinal(data.getBytes(AESCODE)));StringBuilder builder = new StringBuilder();for(char d:code) {builder.append(d);}String strning = builder.toString();return strning;}public static void main(String... args) throws Exception {// Decrypt// final Cipher decryptCipher = Cipher.getInstance("AES");// decryptCipher.init(Cipher.DECRYPT_MODE, generateMySQLAESKey("coco", "UTF-8"));// System.out.println(new String(decryptCipher.doFinal(Hex.decodeHex("d1314e21a741b85e00fb975529a217ac98fab03b6fca017c0a6bf1cd621ef7ae".toCharArray()))));// Encrypt// final Cipher encryptCipher = Cipher.getInstance("AES");// encryptCipher.init(Cipher.ENCRYPT_MODE, generateMySQLAESKey("coco", "UTF-8")); // System.out.println(Hex.encodeHex(encryptCipher.doFinal("要加密的".getBytes("UTF-8"))));System.out.println(encrpt("要加密的")); //加密 System.out.println(decrpt(encrpt("要加密的"))); //解密 加密的数据}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。