Private Sub Button2_Click(sender As Object, e As EventArgs) Handles btLg.Click
RFID.comm.DiscardInBuffer()
RFID.comm.DiscardOutBuffer()
Dim ReadBlock() As Byte = {&H6, &HFF, &H15, &H0, &H4}
Dim CheckSum As Byte
Dim x As Integer
For x = 0 To ReadBlock.Length - 1
CheckSum = CheckSum Xor ReadBlock(x)
Next
ReDim Preserve ReadBlock(ReadBlock.Length)
ReadBlock(ReadBlock.Length - 1) = CheckSum
RFID.comm.Write(ReadBlock, 0, ReadBlock.Length)
System.Threading.Thread.Sleep(200)
Dim intBytesToRead As Integer = RFID.comm.BytesToRead
Dim DataIn(intBytesToRead - 1) As Byte
RFID.comm.Read(DataIn, 0, intBytesToRead)
'extract the MD5 from the tag, and save into a new byte array
Dim MD5FromTag(15) As Byte
Array.Copy(DataIn, 4, MD5FromTag, 0, 16)
這里提示源陣列超出長度(An unhandled exception of type 'System.ArgumentException' occurred in mscorlib.dll
Additional information: 源陣列長度不足。請檢查 srcIndex 和長度以及陣列的下限。)
Dim key As String = tbuser.Text & tbpassword.Text
Dim md5cp As New MD5CryptoServiceProvider
Dim Encryptionkey As Byte() = md5cp.ComputeHash(Encoding.UTF8.GetBytes(key))
Dim blnMatch = VerifyMD5(MD5FromTag, Encryptionkey)
If blnMatch = True Then
Form1.Show()
Me.Hide()
Else
MsgBox("It does not work")
End If
End Sub
uj5u.com熱心網友回復:
Array.Copy(DataIn, 4, MD5FromTag, 0, 16)
這要把 DataIn(4)~DataIn(19) 的內容復制到 MD5FromTag(0)~MD5FromTag(15)
你 DataIn 的長度有 20 嗎,沒見到檢查長度的代碼,你怎么保證?
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/75308.html
標籤:VB基礎類
