[英]Decrypt MySQL fields created using Java AESBouncyCastle
我有用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 for Hex.decodeHex(“956cafe431f5bfc0e66ca7d89359d2e9b63060a3ed5793e60c67aacaca43117c”.toCharArray())
当然,你可以在MySQL中使用AES_DECRYPT函数来解密字符串。
linke: http ://dev.mysql.com/doc/refman/5.7/en/encryption-functions.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.