我需要從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