Re: [問題] 請問一般程式是用什麼方式儲存個資呢?

看板C_and_CPP作者 (我要加入劍道社!)時間14年前 (2011/01/11 06:41), 編輯推噓6(6011)
留言17則, 9人參與, 最新討論串4/4 (看更多)
※ 引述《QQ29 (我愛阿蓉)》之銘言: : 請教各位 : 一隻程式如果要儲存使用者的個人資料 一般都用什麼方式儲存呢 : 假如要儲存使用者密碼 : 我自己是覺得不可能完全不處理就直接寫成text 或是 binary : 是怕說有人可以竊取到密碼 : 但是我不曉得一般有什麼common approach 去處理這塊 : 加密我也不懂 : 但真的要用加密嗎? : 還是就存成binary就好..... : 謝謝 個資這種要隨時做 search 的資料是不需要加密的 加密後你要搜尋比對時還要解密 速度會慢到爆炸 但使用者密碼請一定要加密 如果密碼也用明文去儲存 個資外洩時所造成的傷害絕對是倍數成長的 ex. 使用者的銀行帳戶用了相同的密碼 結果你們的個資外洩很可能造成他的銀行帳戶被盜領 把密碼加密後儲存雖然並不保證100%安全 但至少風險小很多 我不知道台灣的法律是否有規定這一塊 但個人是認為應該明令規定線上服務的使用者密碼不得明文儲存才對 回到原題 密碼通常是用 one-way hash 去加密儲存的: ex. 使用者輸入 hello 作為密碼 ↓ 程式使用 md5 演算法對字串 "hello" 計算 hash ↓ 在檔案中儲存 "5d41402abc4b2a76b9719d911017c592" ↓ 使用者輸入了密碼 X 試圖登入系統 ↓ 同樣使用 md5 演算法對 X 計算 hash ↓ 檢查算出來的 hash 是否剛好等於 "5d41402abc4b2a76b9719d911017c592" md5 是滿常用的 one-way hash 這類 one-way hash 通常滿足以下的特性: 1. 相同的字串一定會計算出相同的 hash 結果 2. 不同的字串計算出相同的 hash 機率極低 3. 就算知道 hash 結果,要推算原密碼也極為困難 前面兩項特性使得使用者設定密碼後 只有知道密碼的人才能登入 第三項特性則是保護密碼 即使有人竊取到 "5d41402abc4b2a76b9719d911017c592" 這個字串 他也很難推算出本來的密碼 "hello" md5 算是相當常用的 one-way hash 現成的 library 也相當多 但實際上 md5 並非無法破解 目前已有許多利用 md5 hash collision 偽造數位簽名的案例 如果你的密碼資料非常重要 可以考慮改用 SHA-2 進行加密 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.15.163

01/11 14:43, , 1F
po完才發現樓上比較完整,可是我又不能自刪!囧
01/11 14:43, 1F

01/11 14:45, , 2F
狂推 樓上和這層樓都應該要加精華區才對
01/11 14:45, 2F

01/11 14:52, , 3F
都不錯阿 但是不跟語言扯上點邊 這樣我很難做人耶 :|
01/11 14:52, 3F

01/11 14:55, , 4F
轉到資安版好了
01/11 14:55, 4F
chmod:轉錄至看板 NetSecurity 01/11 14:57

01/11 16:34, , 5F
多少要扯一點程式碼吧 XD
01/11 16:34, 5F

01/11 18:48, , 6F
老實說我覺得這幾篇文都很棒耶XD
01/11 18:48, 6F

01/12 12:52, , 7F
如果所謂的破解是直接反函數的話確實無法吧
01/12 12:52, 7F

01/12 12:52, , 8F
現在所謂的破解都只是暴力法不是嗎:)
01/12 12:52, 8F

01/12 13:43, , 9F
應該不是破解此密碼,研究怎麼繞過比較快
01/12 13:43, 9F

01/12 13:43, , 10F
密碼也只是鎖而已
01/12 13:43, 10F

01/12 13:43, , 11F
不健全的架構 用什麼超級加密演算法也沒用
01/12 13:43, 11F

01/12 13:44, , 12F
不過是資料加密就另當別論 像那個wikileaks的AES256 XD
01/12 13:44, 12F

01/12 15:54, , 13F
所謂的破解應該是指破解它的 one-way hash 的性質吧
01/12 15:54, 13F

01/12 15:54, , 14F
不一定需要反函數就做得到
01/12 15:54, 14F

01/12 15:55, , 15F
比如說有個很爛的 hash function, 很容易就能找到 input bit
01/12 15:55, 15F

01/12 15:56, , 16F
change 和 output 的改變之間的關係, 方便你偽造簽章
01/12 15:56, 16F

01/12 17:14, , 17F
網路上很多好像都用 rainbow table在破 one-way-hash的樣子
01/12 17:14, 17F
文章代碼(AID): #1DA_k2Lc (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1DA_k2Lc (C_and_CPP)