首次登入無需密碼 → 進入主介面設定密碼 → 之後每次啟動需輸入密碼驗證。不使用資料庫,需輕量級持久化方案。
// 儲存密碼(建議加密後再寫入)
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) 而非執行檔目錄,避免權限問題。setting.txt 是否存在| 方案 | 優點 | 缺點 |
|---|---|---|
| 文字檔 | 零依賴、極簡單 | 安全性低、易被竄改 |
| Registry | 隱蔽性較好 | 需管理員權限、跨平台困難 |
| SQLite | 結構化、可擴充 | 需引入 DLL、稍重 |
對於單機小工具,加密後的文字檔是 CP 值最高的選擇。