/ / Descriptografar campos MySQL criados usando Java AESBouncyCastle - java, mysql, criptografia, aes

Descriptografar campos MySQL criados usando Java AESBouncyCastle - java, mysql, criptografia, aes

Eu tenho um método para criptografar e descriptografar em Java. Como posso reproduzir usando o comando 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();
}

Alguma idéia de onde estou fazendo errado? Finalmente, quero ver se posso usar a função AES_DECRYPT no MySQL para descriptografar a string.

ATUALIZAR

Primeiro, preciso descobrir o equivalente Mysql para o Hex.decodeHex de Java. Estamos usando a biblioteca de codecs comuns do Apache.

Eu tentei UNHEX no MySQL e fiz o mesmo em Java, mas os resultados são diferentes.

Quando fiz UNHEX ("956cafe431f5bfc0e66ca7d89359d2e9b63060a3ed5793e60c67aacaca43117c") isso me devolve algo assim • l¯ä1õ¿Àæl§Ø "YÒé¶0` £ íW" ægªÊÊC | . Enquanto Java retorna algo como isto [B @ 32267cbc para Hex.decodeHex ("956cafe431f5bfc0e66ca7d89359d2e9b63060a3ed5793e60c67aacaca43117c" .toCharArray ())

Respostas:

0 para resposta № 1

Obviamente, você pode usar a função AES_DECRYPT no MySQL para descriptografar a string.

linke aqui: http://dev.mysql.com/doc/refman/5.7/en/encryption-functions.html