【发布时间】:2017-03-16 17:31:06
【问题描述】:
我有在 Java 中加密和解密的方法。如何使用 MySQL 命令重现?
public static String encrypt(String plainString) throws Exception{
byte[] encr = AESBouncyCastle.encrypt(plainString.getBytes("UTF-8"), "secretKey");
String encryptedString= Hex.encodeHexString(encr);
return encryptedString;
}
public static String decrypt(String encryptedString) throws Exception{
byte[] retr = AESBouncyCastle.decrypt(Hex.decodeHex(encryptedString.toCharArray()), "secretKey");
String decryptedString = new String(retr, "UTF-8");
return decryptedString .trim();
}
知道我哪里做错了吗?最终我想看看我是否可以在 MySQL 中使用 AES_DECRYPT 函数来解密字符串。
更新
首先我需要找出与 Java 的 Hex.decodeHex 等效的 Mysql。我们正在使用 Apache 的通用编解码器库。
我在 MySQL 中尝试了 UNHEX,在 Java 中也尝试过,但结果不同。
当我执行 UNHEX('956cafe431f5bfc0e66ca7d89359d2e9b63060a3ed5793e60c67aacaca43117c') 它返回给我的是这样的 •l¯ä1õ¿Àæl§Ø“YÒé¶0`£íW“ægªÊÊC| 。而 Java 返回类似 [B@32267cbc 的内容 Hex.decodeHex("956cafe431f5bfc0e66ca7d89359d2e9b63060a3ed5793e60c67aacaca43117c".toCharArray())
【问题讨论】:
标签: java mysql encryption aes