Visual_Basic 板


LINE

※ 引述《jimpop (popmij)》之銘言: : 最近在寫有關帳號密碼的登入程式 : 發現最常見的編碼 MD5 竟然在VB 2005 裡找不到~~~ : 而且網路上(除了微軟)竟然也沒有資料!!!????? 阿我用"VB.NET md5"就找到一堆 資料根本是滿地爬 中文英文簡體正體都有 看都看不完 請問你是找到哪個星球去了 在哪裡找到的也拜託描述清楚一點 這是MSDN,不是什麼隨便的參考站還是討論區,不要只給個短網址。 你從MSDN找到的網頁是 System.Security.Cryptography 的 MD5 class 他那麼多範例程式,重點只有以下這樣 Imports System Imports System.Security.Cryptography Imports System.Text Function getMd5Hash(ByVal input As String) As String ' 宣告MD5物件 Dim md5Hasher As MD5 = MD5.Create() ' 把輸入字串input依照系統預設編碼(往往指Big5)轉成byte陣列。 ' 注意你如果選擇不同的編碼轉出來的byte陣列絕不相同。 ' 陣列接著再送給MD5物件算hash,存在data這個byte陣列裡面 Dim data As Byte() = _ md5Hasher.ComputeHash(Encoding.Default.GetBytes(input)) ' 讀取data內的各個byte,把每個byte轉成16進位(ToString("x2")) ' 然後用一個stringBuilder(sBuilder)串接成字串 Dim sBuilder As New StringBuilder() Dim i As Integer For i = 0 To data.Length - 1 sBuilder.Append(data(i).ToString("x2")) Next i ' 取出sBuilder中的字串,傳回去 Return sBuilder.ToString() End Function 只要在你的module裡面自己寫一次這個函數,根本就不用再新建專案。 看懂這個函數以後另外那個verifyMD5hash() 就沒有任何特別的:你要檢查 這段文字的hash對不對,當然就是用這段文字再產生一個hash,然後看兩者 有沒有一樣而已。他還用一個comparer,也未必就要這樣做,也可以把hash 輸入用,tolower()全部轉成小寫再用 = 比對。除非speed is the key,或 者你很計較多一個字串的儲存空間。你也可以看到string.ToLower() is evil 這種文章,但是這種深奧的東東以後再看就好了。 也有一些範例的用法不同,例如這一個,來自「藍色小鋪」: http://tinyurl.com/cj4tbk Protected Function ComputeMd5(ByVal filePath As String) As String Dim CurrentFileStream As FileStream = File.OpenRead(filePath) '(1) Dim CryptoMd5 As New MD5CryptoServiceProvider() '(2) Dim EncryptHashCode As Byte() = _ CryptoMd5.ComputeHash(CurrentFileStream) '(3) Dim Result As String = New String("") For ByteIndex As Integer = 0 To EncryptHashCode.Length - 1 Result += EncryptHashCode(ByteIndex).ToString("x2") '(4) Next Return Result End Function 這個的差別在 (2)(3): 使用 MD5CryptoServiceProvider(),而不直接使用MD5。但是這 兩者在使用上幾乎沒有差別。 (1): 直接打開檔案計算整個檔案的hash。注意他並不讀取檔案成字串再hash; 同一頁上的問題就是先讀成字串然後再hash,結果300MB左右就當了。 他這只開檔開成filestream,這樣就是任何檔案都可以hash,也不用 煩惱字碼轉換。 (4)他用傳統的 + 號接字串,不用stringBuilder。這當然是一個壞習慣, 所以你可以改掉它。 他也是寫成一個函數,或方法-所以只要在你的class裡面寫一次就好。當然該 import的還是要import,參照前面。   -- Google 關鍵字 : MPFC-TCP / 殺人笑話 / 包租婆也有過當羅莉的時候 Youtube關鍵字 : 脫衫脫褲 / 傻蛋奧運 / 宗教審訊 / 買張床 / 單車超人 / 謳歌金錢 *美髮師登山隊 http://tinyurl.com/dm6lh3 *Ypres 1914 http://tinyurl.com/b432jb [蒙帝派松正體中文計畫] https://www.youtube.com/user/JamesBondXD --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.232.100.235
1F:推 jimpop:因為我是使用 VB 2005 MD5 去找~資料並沒有滿地爬這麼恐怖 05/08 10:43
2F:→ jimpop:msdn~說真的對新手會有點難度吧!? 05/08 10:44
3F:→ jimpop:會把它貼出來~除了分享外~也提供以後的新手做索引搜尋 05/08 10:45
4F:→ jimpop:當然還是要謝謝你這篇文章~~讓我又長知識 05/08 10:45
5F:推 Peruheru:第一次看MSDN誰都是新手,但是就是新手學著看才懂更多XD 05/08 10:52
6F:→ Peruheru:我也是最近才開始會去看MSDN.... 05/08 10:53
7F:噓 Privator:上次說人家新手病, 這次是找到哪個星期去了, 修養還真好. 05/10 15:23







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP