我有一個C#2010 Winforms應用程序使用OleDb連接到受密碼保護的Access 2010數據庫。 這不是一個在線應用程序!C#Winforms應用程序安全連接到Access數據庫
我目前在連接字符串[我知道這是非常不安全的]用純文本存儲密碼,這是使用Eazfuscator.NET混淆。我對安全地存儲密碼的方式很感興趣,因爲它不能通過反編譯或其他實際方法獲得。
據我所知,有一些方法通過加密在app/web.config中的連接字符串,這樣做的ASP.NET應用程序,但因爲我的應用程序是一個桌面應用程序它不會爲我工作。
到目前爲止,我沒有發現任何的方法來實現這一目標。
這是我想到要乾的:
請求來自用戶的密碼,因爲將有唯一一個誰可以訪問數據庫的用戶。獲取輸入密碼的散列(SHA1/SHA512),從散列中選擇一定數量的字符,將其加入,將其添加到連接字符串並嘗試連接。
顯然,如果用戶將忘記了密碼,就絕對沒有辦法來訪問比使用蠻力其他數據庫。
有什麼辦法來存儲程序在連接字符串中使用的密碼,以便它可以不受任何實際的方式獲得?
爲什麼不直接使用用戶的密碼? – SLaks
因爲他可能會使用一個很容易受到字典攻擊的密碼。 –
但是,如果您只是使用更簡單的密碼來保護更復雜的密碼,那就沒有任何好處。 (除非你試圖防禦擁有數據庫但沒有配置的人) – SLaks