将密码存储在数据库中

时间:2012-10-04 07:13:57

标签: database security passwords

  

可能重复:
  Preferred Method of Storing Passwords In Database

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

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

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

2 个答案:

答案 0 :(得分:2)

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

在这种情况下,我会使用最强的密码(因此你可以反转它)算法 总是使用一个着名的,值得信赖且经过良好测试的第三方库来满足您的加密需求,除非您是加密领域的专家,否则很容易出错。

自2005版以来,SQL Server已经内置了散列函数(直接在T-SQL中),所以也可能有内置的密码函数,详情请看T-SQL cryptographic functions

对于FTP使用,值得看看FTP站点是否支持安全FTP(FTPS)或FTP over SSH,请注意这些与SFTP不同,后者与FTP无关,只是它执行相同的工作。 请参阅FTP on Wikipedia

答案 1 :(得分:1)

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

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

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