安全地在数据库中存储1个密码

时间:2019-07-04 19:47:53

标签: java sql swing security passwords

我有一个Java swing应用程序,该应用程序从登录页面开始,如果登录经过验证,则应将admin转到仪表板。由于只有1个管理员,因此只有1个用户名和密码组合。

现在,我只是使用简单的插入查询将用户名和密码插入sql表。 我是新来的,所以我不知道该怎么做

create table login (
    Emp_id INT AUTO_INCREMENT PRIMARY KEY,
    Emp_Fname VARCHAR(50),
    Emp_Lname VARCHAR(50),
    Username VARCHAR(50),
    Password VARCHAR(50)
);
insert into login (Emp_id, Emp_Fname, Emp_Lname, Username, Password) values (1, 'TestFName', 'TestLName', 'Test', 'Test');

我希望将其加密或散列,而不是以纯文本形式存储密码。

1 个答案:

答案 0 :(得分:0)

我目前正在用手机打字,请原谅我。您似乎希望您的密码看起来像:eive29ceic28e8c38d9h3ce9h而不是“ password123”

您可以使用SHA-1之类的东西,它在Java中与SHA256和SHA512集成在一起。两者都可以在Google快速搜索后找到。我个人在项目中使用了它们,但是使用一个回合的结果作为下一回合的输入来递归运行此方法100次。然后,我使用以下方案扩展了字符串的长度:密码+向后密码+密码+密码。在我的情况下,密码的长度为4x512位,似乎相对安全。 之后,我将其保存到文件中,并且每次我要登录时,都将输入内容加密并加密,然后将其与文件中的密码进行比较。如果它们匹配,您就可以进入。我知道您可以破解sha-1打开它的蛮力。如果您想要其他东西,请尝试bcrypt,pbkdf2或argon2。

我想给你链接,但是在手机上很难。我希望这对您有用。否则,我明天早上会发表评论

编辑:查看您的评论中有指向我所指算法的链接。只需将其放入for循环100次...