簡體   English   中英

用戶通過登錄控件ASP.NET C#登錄時如何解密存儲在數據庫中的加密密碼

[英]How to decrypt encrypted password that is stored in database when user logins through login control asp.net c#

我在asp.net c#中創建了一個自定義注冊頁面,並將密碼加密並保存在SQL Express數據庫中。我想在用戶登錄時解密該密碼。我在Login Control中使用build嗎?

您能指導我如何解密該密碼嗎? 在登錄控件后面的代碼中,我使用了帶where子句的select查詢,該子句與以加密形式存儲在數據庫中的用戶密碼相匹配。

您應該匹配加密的密碼,而不是解密所有密碼。 您應該臨時加密用戶插入的密碼,並查詢數據庫以搜索與加密密碼的對應關系。

@trippino建議的替代方法是將密碼的哈希值存儲在數據庫中,而不是加密版本中。 當用戶登錄時,您將創建該用戶密碼的哈希,並將其與您存儲在數據庫中的哈希進行比較。

這通常是更安全的,因為在任何情況下(除了初始哈希階段),您都不需要處理實際用戶的密碼。

您不解密密碼。 您只需使用與存儲密碼相同的算法來匹配加密密碼。

最簡單的方法是加密輸入的密碼,並將其與已保存的密碼匹配。 例如,您在注冊時在數據庫中輸入了密碼“ test ”,該密碼已保存為“ 193ed271e1eytjgwedguwegdkgwke ”,現在,當用戶再次登錄時再次輸入具有相同功能的測試時,它將再次生成相同的加密代碼,如果密碼不同,則密碼不能相同!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM