當用戶更改數據時,我需要更新C#應用程序中的DataTable中的字段。在更新文本框時更新DataTable中的字段
DataTable是一個內存數據表 - 我將任何數據保存並加載到一個XML文件(writeXML方法)中,所以沒有底層數據庫。 我正在使用它來保存一些關於登錄的信息,因此我有一個我想要加密的密碼字段。這一點很重要,因爲當我運行保存到XML時,它會將密碼寫出未加密的密碼。
我正在看着做這兩種不同的方式,並希望得到一些反饋。
從XML加載,然後解密每一行中的所有密碼值,並在保存到XML之前加密它們。我可以使用類似的東西:
foreach (DataRow row in tmp.Rows) { row["PW"] = EncryptIt(row["PW"].ToString()); }
但是,這似乎有點不安全。它會給我一個內存中的密碼解密的數據表。但我認爲沒有什麼比使用時一次只解密一個密碼...
保持內存數據表中的密碼被加密。但是,當用戶使用屏幕編輯記錄時,我可以在用戶輸入文本框後對輸入的值進行加密。我可以隨時解密來自DataTable的值,只要我需要使用它。這將保持密碼在DataTable中的加密,但是當我需要使用它們時,我將不得不解密它們,所以我不確定它是否比上面更簡單的方法更安全。
你對方法1和方法2有什麼看法?
上面的方法#2還介紹了一些關於如何最好地加密數據的附加問題 - 我的意思是使用什麼事件?
我一直在玩EditValueChanged
和TextChanged
,但是他們似乎都在爲每一個被改變的角色開火。我還需要考慮各種情況,例如離開現場,並且在用戶更改字段然後在不離開字段的情況下點擊保存按鈕的情況下不離開現場。
當用戶將數據綁定的TextBox更改爲該字段(通過綁定源)時,如何更新基礎DataTable字段?
我開始認爲選項一會更易於實施,並且在安全性方面不會更差。或者我錯過了什麼?
不是你的問題的答案,但如果你是新來存儲密碼,你應該肯定給[這個](https://security.stackexchange.com/questions/6068/is-it-possible-to-securely -store-passwords-using-reversible-encryption)和[this](http://security.blogoverflow.com/2013/09/about-secure-password-hashing/)讀取。 – marcushobson