Mysql 将信息存储在机密数据库中

Mysql 将信息存储在机密数据库中,mysql,database,passwords,software-design,Mysql,Database,Passwords,Software Design,我正在创建一个应用程序,该应用程序需要存储并在以后检索这些信息,以便向用户显示这些信息。此信息将被视为敏感信息,可能包括员工特定站点的临时密码。我相信我理解密码应该和它们的散列一起存储,然后您可以检查输入的散列是否与您存储在数据库中的内容匹配 我的问题是:从纯文本的角度来说,把这些信息在伦理上存储起来似乎是粗略的,如果不是程序员,我认为边界非法。如何存储此信息并在以后检索?像last pass这样的网站可以做到这一点,但我并没有创建密码管理器,我也不认为我可以做到这一点,我会说,“是的,这是安全

我正在创建一个应用程序,该应用程序需要存储并在以后检索这些信息,以便向用户显示这些信息。此信息将被视为敏感信息,可能包括员工特定站点的临时密码。我相信我理解密码应该和它们的散列一起存储,然后您可以检查输入的散列是否与您存储在数据库中的内容匹配

我的问题是:从纯文本的角度来说,把这些信息在伦理上存储起来似乎是粗略的,如果不是程序员,我认为边界非法。如何存储此信息并在以后检索?像last pass这样的网站可以做到这一点,但我并没有创建密码管理器,我也不认为我可以做到这一点,我会说,“是的,这是安全的,用户的密码除了用户之外永远不会被看到”。对于这一点,还有什么其他可行的方法


我正在考虑的一些功能包括,在用户登录x天之后,甚至在用户被使用之后,用户的登录被删除,但这些密码仍然有被窃取的机会。还有什么我可以包括或做不同的吗?是否有可能阻止这些密码出现在数据库中?

以下是我用来加密密码然后解密密码的代码。如果你面临任何问题,请告诉我

mysql> create table test_2(id int, password varchar(500));
Query OK, 0 rows affected (0.21 sec)

mysql> select * from test_2;
Empty set (0.00 sec)

mysql> insert into test_2 values(1,DES_ENCRYPT('abc123@##','password'));
Query OK, 1 row affected, 1 warning (0.08 sec)

mysql> select * from test_2;
+------+---------------------------+
| id   | password                  |
+------+---------------------------+
|    1 | ÿö5r¢ÍòšMÀcEL]         |
+------+---------------------------+
1 row in set (0.00 sec)

mysql> select id,DES_DECRYPT(password,'password') as real_password from test_2;
+------+---------------+
| id   | real_password |
+------+---------------+
|    1 | abc123@##     |
+------+---------------+
1 row in set, 1 warning (0.05 sec)

您计划使用哪个数据库来存储密码/数据?我将使用MySql数据库来存储所有信息,包括运行应用程序的同一服务器上的用户。我的答案对您有用吗,如果有任何问题,请告诉我?有些数据库比其他数据库更擅长管理加密。如果我没有弄错,即使本地连接没有通过网络发送该信息,这些查询仍可能以纯文本日志结束。