簡體   English   中英

解密使用Java AESBouncyCastle創建的MySQL字段

[英]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函數來解密字符串。

UPDATE

首先,我需要找出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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM