我的问题类似于此处讨论的问题:Best way to store password in database
我需要在数据库中存储外部FTP登录的密码,该密码将由应用程序使用。链接主题的解决方案不适用,因为它正在对密码进行哈希处理。
我正在使用C#并连接到SQL Server 2008.有人有一个示例解决方案吗?我想我只需要加密密码,以密码形式存储,如果应用程序想要使用密码 - >解密。
答案 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#
但是你总是可以写自己的,这很有趣......