iT邦幫忙

0

C# 3DES加解密

  • 分享至 

  • xImage

大家好:

1.想請問若使用3DES將密碼加密寫入ACCESS資料庫後,通常使用者再開啟軟體會重新讀取帳密,這時的密碼欄位顯示要顯示加密後還是未加密後的(通常好像是用*顯示未加密的密碼?)

https://ithelp.ithome.com.tw/upload/images/20201221/20097057dWBzJdKRqB.png

2.若將金鑰固定字串直接存於程式碼中這樣是否可以,還是該存放哪裡,搜到網路教學範例是可以隨機產生金鑰存在MemoryStream(不太懂他的功用),但下次使用者再重開程式,是否MemoryStream金鑰只是暫存會消失呢,若重開程式讀取資料庫的使用者密碼,就無法有金鑰可以解密? 但好處是不同本機上會有自己的金鑰

3.以上資料庫都是在使用者的本機上,不會透過網路連線,只怕若傳給別人資料庫忘了刪,密碼都會讓別人知道,因此用加密防範

謝謝

PPTaiwan iT邦好手 1 級 ‧ 2020-12-22 12:56:51 檢舉
1. 假設你是用 Access 還是 Web 直接做介面,應該都只會出現 * 的內容,顯示是 * 程式在抓資料時是原來所輸入的文字內...

2. 通常都會用無法還原代碼的方式,可以上網查有很多方式加密。我通常都是用 MD5 進行處理,如果使用者密碼忘了,重新再設定就好了(規定要定好)

但..你提到 "但好處是不同本機上會有自己的金鑰" ?? 第三點提到資料庫都是在使用者本機上。

但這樣子的設計為何??
mayyola iT邦研究生 1 級 ‧ 2020-12-22 20:49:02 檢舉
1.對的
2.用MD5好像不可逆,因為我把密碼加密寫入資料庫,下次使用者再開啟,只要解密就不用再次輸入密碼,但MD5應該是不可逆的 對嗎?
3.不同金鑰給使用者感覺比較安全,不過要怎麼存取金鑰,這是我的問題,譬如每更改一次帳號,就隨機產生金鑰,現在我只有設定固定金鑰放在程式中(感覺最方便)
4.資料庫都在本機使用者,除了使用者方便(我不想管),也考量資安,如果連線到某台主機上,萬一出問題就不好了QQ
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答