2

可能重复:
在数据库中存储密码的首选方法

我的问题类似于这里讨论的问题:Best way to store password in database

我需要将外部 FTP 登录的密码存储在应用程序将使用的数据库中。链接主题的解决方案不适用,因为它正在对密码进行哈希处理。

我正在使用 C# 并连接到 SQL Server 2008。有人有示例解决方案吗?我想我只需要加密密码,以加密形式存储它,如果应用程序想要使用密码 - >解密。

4

2 回答 2

2

存储密码的最佳方法是使用强哈希函数,但是,在您的情况下,您有时需要将未加密的字符串传递给第 3 方库或服务。

在这种情况下,我会使用最强的密码(所以你可以反转它)算法。
始终使用知名、受信任且经过良好测试的 3rd 方库来满足您的加密需求,除非您是加密领域的专家,否则很容易出错。

自 2005 版以来,SQL Server 具有内置散列函数(直接在 T-SQL 中),因此也可能具有内置密码函数,有关详细信息和示例,请参阅T-SQL 加密函数

对于 FTP 使用,值得查看 FTP 站点是否支持安全 FTP (FTPS) 或 SSH 上的 FTP,请注意,它们都与 SFTP 不同,后者与 FTP 无关,只是它执行相同的工作。
请参阅维基百科上的 FTP

于 2012-10-04T07:51:02.007 回答
1

可能最好的版本是如果你加密通行证并将其存储到数据库,那么当应用程序需要检查密码是否正确时,你不要解密存储的密码,但你必须加密插入的密码并检查它们是否相同.

示例周围有很多很好的加密算法:Simple insecure two-way "obfuscation" for C#

但是你总是可以自己写,这很有趣......

于 2012-10-04T07:20:20.533 回答