vb.net哈希函数,常用哈希函数

如何用vb实现hash函数的各个算法

Private Sub Initialize(ByVal vKeyString As String)

从策划到设计制作,每一步都追求做到细腻,制作可持续发展的企业网站。为客户提供成都网站建设、网站建设、网站策划、网页设计、空间域名、雅安服务器托管、网络营销、VI设计、 网站改版、漏洞修补等服务。为客户提供更好的一站式互联网解决方案,以客户的口碑塑造优易品牌,携手广大客户,共同发展进步。

Dim intI As Integer, intJ As Integer

Randomize(Rnd(-1)) '得到初始值(种子值)

'每次调用初始值均相同

'根据初始值(种子值)得到随机数序列,每次调用Initialize时,初始值均相同。只要vKeyString相同,所产生的随机数序列一定相同

For intI = 1 To Len(vKeyString)

intJ = Rnd(-Rnd * AscW(Mid(vKeyString, intI, 1)))

Randomize(intJ)

Next intI

End Sub

Public Sub DoXor(ByRef msFileText As String)

Dim intC As Integer

Dim intB As Integer

Dim lngI As Long

For lngI = 1 To Len(msFileText)

intC = AscW(Mid(msFileText, lngI, 1))

intB = Int(Rnd() * 2 ^ 7)

'选用 =127可正确处理汉字,ChrW(n):n 有一个范围

Mid(msFileText, lngI, 1) = ChrW(intC Xor intB)

Next lngI

End Sub

Public Function Hash(ByVal ET As String) As String

Dim BitLenString As String, KeyString As String,

FileText As String

BitLenString = "12345678"

KeyString = ET BitLenString

Call Initialize(KeyString)

'根据KeyString产生随机数序列

FileText = ET BitLenString

Call DoXor(FileText)

'根据上述随机数序列对FileText加密

KeyString = FileText

Call Initialize(KeyString)

'根据上述的加密结果产生新的随机数序列

FileText = BitLenString

Call DoXor(FileText)

'根据上述随机数序列对FileText加密,8位字符

Hash = FileText

'8位字符送作HASH值

End Function

Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click

VB.NET自定义函数

很简单,在end select前再多加一种情况case else return "XXXx",因为你只提供了0-9这10种情况

Public Function Zuhe(ByVal qa As String) As String

Select Case qa

Case "0"

Return "1"

Case "1"

Return "3"

Case "2"

Return "4"

Case "3"

Return "6"

Case "4"

Return "2"

Case "5"

Return "8"

Case "6"

Return "9"

Case "7"

Return "7"

Case "8"

Return "5"

Case "9"

Return "0"

Case else

Return "XXXX"

End Select

End Function

C#中, 什么叫哈希函数

一般的线性表,树中,记录在结构中的相对位置是随机的,即和记录的关键字之间不存在确定的关系,因此,在结构中查找记录时需进行一系列和关键字的比较。这一类查找方法建立在“比较“的基础上,查找的效率依赖于查找过程中所进行的比较次数。 理想的情况是能直接找到需要的记录,因此必须在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使每个关键字和结构中一个唯一的存储位置相对应。

哈希表中元素是由哈希函数确定的。将数据元素的关键字K作为自变量,通过一定的函数关系(称为哈希函数),计算出的值,即为该元素的存储地址。表示为:

Addr = H(key)

为此在建立一个哈希表之前需要解决两个主要问题:

⑴构造一个合适的哈希函数

均匀性H(key)的值均匀分布在哈希表中;

简单 以提高地址计算的速度

⑵冲突的处理

冲突:在哈希表中,不同的关键字值对应到同一个存储位置的现象。即关键字K1≠K2,但H(K1)= H(K2)。均匀的哈希函数可以减少冲突,但不能避免冲突。发生冲突后,必须解决;也即必须寻找下一个可用地址。

VB.NET string$函数

VB6的String()函数,在VB.NET中,改用 StrDup()函数,使用格式与VB6的String()函数类似:

例如:

VB6中,String(5,"*") ,是产生5个星号字符,"*****"

VB.Net中,改用 StrDup(5,"*") ,也是产生5个星号字符,"*****"

VB.NET 中 HASHTABLE 的疑问

我们知道Hashtable 是线程安全的,可由多个读取器线程或一个写入线程使用。

它的特点是:通过节点的关键码确定节点的存储位置,即给定节点的关键码k,通过一定的函数关系H(散列函数),得到函数值H(k),将此值解释为该节点的存储地址.

HashMap 与Hashtable很相似,但HashMap 是非同步(unsynchronizded)和可以以null为关键码的.

我们知道在使用内存中的地址时是按照哪里有空闲的就使用哪里的。怎么可能一直由着我们输入的顺序给你开放地址呢?

VB.NET 获取文件MD5值

Public Function md5(ByVal a As String) As String

Dim tempmd5 As System.Security.Cryptography.MD5 = New System.Security.Cryptography.MD5CryptoServiceProvider()

Dim bytResult() As Byte = tempmd5.ComputeHash(System.Text.Encoding.Default.GetBytes(a))

Dim strResult As String = BitConverter.ToString(bytResult)

strResult = strResult.Replace("-", "")

Return strResult

End Function

如果要计算文件的就把参数改成字节数组就可以了,然后获取文件GetBytes()传进去就可以了。


网页标题:vb.net哈希函数,常用哈希函数
标题网址:http://pwwzsj.com/article/hsgpdo.html