gpt4 book ai didi

java - SQL 返回解密的密码

转载 作者:行者123 更新时间:2023-11-29 12:22:36 24 4
gpt4 key购买 nike

我做了一个方法从我的数据库返回解密的密码,但我收到一个错误,说表“密码”不存在或aes_DECRYPT(用户名,密码)不存在。不知道为什么,因为它以前有效过。

public String selectOldPassword(String username){
String oldPassword = "";
try{
stmt = connect.prepareStatement("SELECT AES_DECRYPT(password, username) FROM userdetails WHERE username = ?");
stmt.setString(1, username);
ResultSet passwordData = stmt.executeQuery();
if(passwordData.next()){
oldPassword = passwordData.getString("AES_DECRYPT(password,username)");
System.out.println(oldPassword);
}
stmt.close();
connect.close();
}catch(SQLException sql){
sql.printStackTrace();
}
return oldPassword;
}

最佳答案

我会在选择中使用别名:

stmt = connect.prepareStatement("SELECT AES_DECRYPT(password, username) as decrypted_password FROM userdetails WHERE username = ?");

并从结果集中读取值。

oldPassword = passwordData.getString("decrypted_password");

老实说,我不知道 JDBC 是否允许像

这样的列名称

AES_DECRYPT(password, username)

我必须补充一点,我想不出从数据库中解密密码的充分理由。对我来说似乎是在要求安全漏洞。

关于java - SQL 返回解密的密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28795159/

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