gpt4 book ai didi

mysql - Ebean手动解密

转载 作者:行者123 更新时间:2023-11-29 07:36:56 26 4
gpt4 key购买 nike

我已使用 this 中提供的答案成功为模型中的字段设置加密。所以帖子。但我想知道如何从 SQL 客户端手动解密该字段以进行调试。我想要 Mysql(Prod 数据库)的信息,最好是 H2(开发数据库)的信息。根据 E-bean 文档,Mysql 使用 AES_ENCRYPT/AES_DECRYPT,H2 使用 ENCRYPT/DECRYPT 函数。

  @Encrypted
@Column(columnDefinition="varchar(50)")
public String password;

注意:我已将加密字段的数据类型设置为 varchar 而不是二进制,如下所示。因此,Ebean 可能还会对生成的二进制数据进行十六进制处理。

class CustomEncryptKey implements EncryptKey{ 

private String tableName;
private String columnName;

public CustomEncryptKey(String tableName, String columnName){
this.tableName = tableName;
this.columnName = columnName;
}

@Override
public String getStringValue() {
return "my-encryption-key";
}
}

最佳答案

我设法找出答案。对于 MySQL

解密:

SELECT CAST(AES_DECRYPT(encrypted-field,'my-encryption-key') as CHAR(50)) from table

加密:

SELECT AES_ENCRYPT(encrypted-field,'my-encryption-key') from table;

对于 H2:

加密:

ENCRYPT('AES', STRINGTOUTF8('<encryption-key>'), STRINGTOUTF8('<text to be encrypted>'))

解密:

TRIM(CHAR(0) FROM UTF8TOSTRING(DECRYPT('AES', STRINGTOUTF8('<encryption-key>'), '<text to be encrypted>')))

关于mysql - Ebean手动解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30435718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com