我在asp.net c#中創建了一個自定義註冊頁面,並加密了密碼並將其保存在SQL express數據庫中。我想解密該密碼,當用戶登錄。我正在使用登錄控制生成?如何解密通過登錄控制asp.net登錄時存儲在數據庫中的加密密碼c#
你能指導我如何解密密碼? 在登錄控制後面的代碼中,我使用了where子句與select數據庫中以加密形式存儲的 用戶密碼匹配的select查詢。
我在asp.net c#中創建了一個自定義註冊頁面,並加密了密碼並將其保存在SQL express數據庫中。我想解密該密碼,當用戶登錄。我正在使用登錄控制生成?如何解密通過登錄控制asp.net登錄時存儲在數據庫中的加密密碼c#
你能指導我如何解密密碼? 在登錄控制後面的代碼中,我使用了where子句與select數據庫中以加密形式存儲的 用戶密碼匹配的select查詢。
您應該匹配加密的密碼,而不是解密所有的密碼。您應該臨時加密用戶插入的密碼並查詢搜索與加密密碼的對應關係的數據庫。
您不解密密碼。您只需使用您用於存儲它的相同算法來匹配加密的密碼即可。
@trippino推薦的替代方法是將密碼的散列值存儲在您的數據庫中,而不是加密版本。當用戶登錄時,您創建用戶密碼的散列並將其與您存儲在數據庫中的散列進行比較。
這通常比較安全,因爲在任何情況下(除初始散列階段外)您都在處理實際用戶的密碼。
完成這項工作的最簡單方法是加密輸入的密碼並將其與已保存的密碼相匹配。像例如您在註冊時和數據庫中輸入了一個密碼'test',它保存爲'193ed271e1eytjgwedguwegdkgwke',現在當用戶在登錄時再次輸入測試時,它會使用相同的功能再次輸入測試,它會再次生成相同的加密代碼,如果它不是相同的代碼,它必須不是相同的密碼!
謝謝你的解決方案!:-) –