如何最好地在SQL Server中存储密码,以便可以检索密码

问题描述 投票:2回答:2

因此,我正在创建一个应用程序,该应用程序登录到一长串FTP站点,检查新文件并下载找到的任何新文件。

[我正在使用SQL Server 2016 SP1存储我已经下载的文件表,因此,当我连接到FTP并对照该表进行检查时,我可以确定文件是否为“ new”。] >

我也在使用SQL Server存储我的FTP站点列表,用户名和...密码!我的应用程序一个一个地遍历FTP表中的每个FTP站点,并使用表中的凭据连接到它们。

现在,我已将密码存储为计划varchars,因为我需要将其传递到我正在使用的FTP应用程序中。

我想做的是将它们存储为加密数据,这样我就只在要使用密码时才对其解密。理想情况下,我只将解密的密码传递给我的FTP客户端在内存中,而从不实际将其作为varchar写入磁盘。

[我在每本指南或网页上都遇到过有关加密密码的问题,因此您只会得到哈希,有效地为我提供了一种方法来检查我是否具有正确的密码,这对于使用密码运行网站或检查用户是否有用已正确输入密码或其他任何密码。

我需要一种存储加密密码的方法,以便我可以对其进行DE加密,以便我可以使用它。无论我沿着这些路线进行什么搜索,我总是会不断返回答案,这些答案会给我带来哈希检查,而不是对其进行解密的方法。

我想做些什么吗?还有什么要点吗?由于如果I

可以解密密码,那么肯定可以访问数据库的任何人都可以吗?还是有某种方法可以有效地将它们锁定为只能由某些UserID解密?

欢迎提出意见。

因此,我正在创建一个应用程序,该应用程序登录到一长串FTP站点,检查新文件并下载找到的任何新文件。我正在使用SQL Server 2016 SP1存储我已经拥有的文件表...

sql-server encryption passwords sql-server-2016-sp1
2个回答
1
投票

不确定您的应用程序使用哪种语言,但是在PHP中,您可以使用openssl和base64方法来加密和解密服务器端。这是一个快速的PoC:


0
投票

您可以存储已加密的密码,并可以使用许多不同的公用/专用或专用密钥加密方法(非对称或对称)(例如RSA,AES和3DES)对其进行解密。但是,正如您在文章末尾所说的那样,这会带来安全风险,因为您将需要使用对数据和私钥的强数据库权限来保护解密密码的能力。理想情况下,在存储密码时,您应该只使用单向哈希,并且我建议您寻找一种避免其他方式避免存储密码的替代解决方案(例如,您是否需要登录到每个FTP站点?这取决于您使用的是什么)正在尝试通过应用程序实现)。

© www.soinside.com 2019 - 2024. All rights reserved.