我需要从Oracle服务器获取一些敏感数据到SQL Server以用于我的ASP.NET网站。让我们说它的密码。我们的安全人员表示,这些密码需要在每一步都保证安全。我的网站需要能够将用户输入与这些密码进行比较。这些密码必须在晚上从Oracle服务器传输到SQL Server,并且只能在白天在SQL Server上使用。如何在Oracle,SQL Server和ASP.NET之间实现哈希
我能想出的最佳解决方案是我们需要在Oracle上散列密码并将散列传递给SQL Server(让我们假设两者之间的连接是安全的,因为那不是我的工作:P)。然后,我的ASP.NET Web应用程序需要能够在用户输入上实现完全相同的哈希,以便我们可以将输入哈希与数据库哈希进行比较。
所以我的问题是:我怎样才能在Oracle和.NET上使用相同的算法/键/盐进行哈希?我知道如何使用.NET哈希函数,但我不确定我可以在Oracle中使用哪些可比较的数据...我可以将它们以纯文本形式从ASP.NET传递到SQL Server,并在那里将它们哈希这很容易,但让我们称之为“计划B”。
数据库为什么需要关心的哈希算法?数据库甚至不应该接收被哈希的原始数据。你的应用程序应该照顾这一点。 – vcsjones 2012-02-01 16:40:38
@vcsjones - 好问题。密码从不同的来源进入Oracle。我的应用程序永远不会看到源代码,因此它不可能是首先将它们散列的源代码。 – jrizzo 2012-02-01 16:47:37
如果md5适合你,请参阅我的答案[这里] [1]。 [1]:http://stackoverflow.com/questions/8810471/get-hash-values-from-sql-server-and-oracle-and-compare-them/8835412#8835412 – tbone 2012-02-01 16:55:53