回到首頁
個人.家庭.數位化 - 數位之牆



產業動態 程式設計師的資安第一課: 密碼驗證
玉山科技 本新聞稿發佈於2006/09/12,由發布之企業承擔內容之立場與責任,與本站無關

典型的應用程式,啟動後, 第一件事是要求輸入使用者代號與密碼, 如果你將使用者代號與密碼資料存放在資料庫裡, 這時你要注意的第’零’件事是輸入檢核, 以避免SQL Injection發生. 接者你要驗證密碼對不對, 你最好不要真的去比對密碼值……

 
■ 發布/輪播新聞稿 新聞稿直達14萬電子報訂戶刊登新聞稿:按此
 
不要真的去撈出密碼值來與使用者輸入的密碼比對, 因為這樣你必須將密碼值以明碼方式存放在資料庫(或某檔案或Registry)裡, 你會冒了一個所有使用者代號與密碼洩漏的風險. 當然你可以將密碼欄位加密起來, 但有更簡單的方式….

你可以將密碼以Hash的方式存起來(資料庫或檔案或Registry裡), 然後將使用者輸入的密碼值用同樣的Hash Function運算得到一個Hash值, 再去比較你存下來的Hash值, 如果相同就表示密碼值一樣, 如果不同就是密碼不對. Hash是一個單向的演算法, 無法反運算回來, 換言之, 無法以Hash Value反推回原來的值. 這避免了你洩露密碼值的風險.

所以, 你不要這樣做:

Username Password
-------- --------
james god123
lucas sex999
anna love4ever

你應該這樣存:

Username Password
------------- -------------------------------------------------------------------------
james 21298DF8A3277357EE55B01DF9530B535CF08EC1
lucas 68BB04BD54B8F6C530695E0B77DE298276A0511D
anna 9F2FEB0F1EF425B292F2F94BC8482494DF430413

沒有人可以由21298DF8A32…..算出 god123
但一定要是god123才能得到21298DF8A32…..

程式如何做 ? 你需要類似MakeHash(value)這樣的 SQL Procedure加到你的SQL程式碼. Hash 的演算法有很多種, 例如SHA-1, SHA-2, MD5…安全強度不一, 你可以選擇合適的來用. 關於Hash的更多資訊與用途, 可搜尋Google或 Wikipedia 網站.

用Hash來保護使用者的密碼只是您要學的第一個課題. 不要讓別人說程式設計師只會注重程式的寫作技巧,結果寫出漏洞百出, 風險極高的應用系統來

XP_Crypt是一套寫好的 Stored Procedures,內含Hash Functions,及其它各種國際標準的加解密演算功能, 可以很容易的崁入到您的SQL程式裡.

詳細資料請參考: http://www.asiapeak.com/XPCrypt.php

- 新聞稿有效日期,至2006/10/12為止


聯絡人 :services
聯絡電話:(02)77128686
電子郵件:services@asiapeak.com

上一篇:資策會10/13開辦ITIL Foundation課程
下一篇:中小企業電子化全省巡迴講座



 
搜尋本站


最新科技評論

我在中國工作的日子(十四)阿里巴巴敢給股票 - 2023/07/02

我在中國工作的日子(十三)上億會員怎麼管理 - 2023/06/25

我在中國工作的日子(十二)最好的公司支付寶 - 2023/06/18

我在中國工作的日子(十一)兩個女人一個男人 - 2023/06/11

我在中國工作的日子(十)千團大戰影音帶貨 - 2023/06/04

我在中國工作的日子(九)電視購物轉型電商 - 2023/05/28

我在中國工作的日子(八)那些從台灣來的人 - 2023/05/21

我在中國工作的日子(七)嘉丰資本擦身而過 - 2023/05/14

我在中國工作的日子(六)跟阿福有關的人們 - 2023/05/07

■ 訂閱每日更新產業動態
RSS
RSS

當月產業動態

Information

 

 


個人.家庭.數位化 - 數位之牆

欲引用本站圖文,請先取得授權。本站保留一切權利 ©Copyright 2023, DigitalWall.COM. All Rights Reserved.
Question ? Please mail to service@digitalwall.com

歡迎與本站連結!