首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

WinForms 密碼儲存方案:無資料庫環境下的輕量級實作

     編輯:程式設計綜合問答

需求分析

首次登入無需密碼 → 進入主介面設定密碼 → 之後每次啟動需輸入密碼驗證。不使用資料庫,需輕量級持久化方案。

方案:文字檔 + 簡易加密

// 儲存密碼(建議加密後再寫入)
File.WriteAllText("setting.txt", Encrypt(textBox1.Text + "|" + textBox2.Text));

// 讀取並驗證
string encrypted = File.ReadAllText("setting.txt");
string[] parts = Decrypt(encrypted).Split('|');
string savedPwd = parts[0];
string confirmPwd = parts[1];

安全性強化建議

  • 使用 System.Security.Cryptography 進行 AES 加密,避免明文儲存。
  • 檔案路徑放在 Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) 而非執行檔目錄,避免權限問題。
  • 加入鹽值防止彩虹表攻擊。

完整流程圖示

  1. 啟動 App → 檢查 setting.txt 是否存在
  2. 不存在 → 顯示「設定密碼」介面 → 寫入檔案 → 進入主程式
  3. 存在 → 顯示「輸入密碼」對話框 → 驗證成功 → 進入主程式

替代方案比較

方案優點缺點
文字檔零依賴、極簡單安全性低、易被竄改
Registry隱蔽性較好需管理員權限、跨平台困難
SQLite結構化、可擴充需引入 DLL、稍重

對於單機小工具,加密後的文字檔是 CP 值最高的選擇。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved