Visual basic 6.0-ComputeHash无效过程调用或参数错误
在步骤computeHash中,我收到错误消息无效的过程调用或参数 专用子窗体加载Visual basic 6.0-ComputeHash无效过程调用或参数错误,hash,vb6,Hash,Vb6,在步骤computeHash中,我收到错误消息无效的过程调用或参数 专用子窗体加载 Dim rngcsp As New RNGCryptoServiceProvider '= new RNGCryptoServiceProvider() Dim u8 As Encoding 'u8 = Encoding.UTF8 Dim minSaltSize As Integer Dim maxSaltSize As Integer Dim saltSize As Integer minSalt
Dim rngcsp As New RNGCryptoServiceProvider '= new RNGCryptoServiceProvider()
Dim u8 As Encoding
'u8 = Encoding.UTF8
Dim minSaltSize As Integer
Dim maxSaltSize As Integer
Dim saltSize As Integer
minSaltSize = 4
maxSaltSize = 8
Dim randm As Random
Set randm = New Random
Dim saltBytes() As Byte
ReDim saltBytes(saltSize)
Set rngcsp = New RNGCryptoServiceProvider
rngcsp.GetNonZeroBytes (saltBytes)
Dim plainTextBytes() As Byte
plainTextBytes() = ConvertStringToUtf8Bytes("Mohan")
Dim plainTextBytesLen As Long
plainTextBytesLen = UBound(plainTextBytes) - LBound(plainTextBytes) + 1
Dim saltBytesLen As Long
saltBytesLen = UBound(saltBytes) - LBound(saltBytes) + 1
Dim plainTextWithSaltBytes() As Byte
ReDim plainTextWithSaltBytes(plainTextBytesLen + saltBytesLen)
For i = 0 To plainTextBytesLen - 1
plainTextWithSaltBytes(i) = plainTextBytes(i)
Next
For i = 0 To saltBytesLen - 1
plainTextWithSaltBytes(i) = saltBytes(i)
Next
'Dim hash As HashAlgorithm = New MD5CryptoServiceProvider()
Dim hash12 As New SHA256Managed
'SHA256Managed
Dim totLen As Integer
totLen = plainTextBytesLen + saltBytesLen
Dim str As String
Dim hashBytes() As Byte
'With
hashBytes = hash12.computeHash(plainTextWithSaltBytes) ', 0, totLen)
'End With
End Sub我没有仔细阅读这段代码,但这可能是对数组边界的简单混淆。该行:
ReDim plainTextWithSaltBytes(plainTextBytesLen + saltBytesLen)
…创建的数组比您想象的长一个字节