【问题标题】:Decrypt MySQL fields created using Java AESBouncyCastle解密使用 Java AESBouncyCastle 创建的 MySQL 字段
【发布时间】: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


    【解决方案1】:

    当然,你可以使用 MySQL 中的 AES_DECRYPT 函数来解密字符串。

    链接在这里:http://dev.mysql.com/doc/refman/5.7/en/encryption-functions.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-30
      • 2013-05-30
      • 1970-01-01
      • 2016-07-28
      • 1970-01-01
      • 1970-01-01
      • 2011-11-23
      相关资源
      最近更新 更多