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