Vb.net Base64编码产生非常长的结果

Vb.net Base64编码产生非常长的结果,vb.net,base64,Vb.net,Base64,以创建简单的base64编码为例。问题是在access DB中存储结果(编码字符串)时,返回的字符串是否大于DB字段允许的值?最大字段长度为255。为什么8-15个字符的平均字符串的结果会导致350多个字符的编码结果。示例salt是“abcdefgh” 结果表明,从数据库返回的字符串pass后面有空格来填充128 chr DB字段的长度(一个20个字符的密码末尾有108个空格) 使用pass.TrimEnd()修复了为什么要对哈希进行base64编码?另外,您使用的是哪种哈希算法?这实际上与ba

以创建简单的base64编码为例。问题是在access DB中存储结果(编码字符串)时,返回的字符串是否大于DB字段允许的值?最大字段长度为255。为什么8-15个字符的平均字符串的结果会导致350多个字符的编码结果。示例salt是
“abcdefgh”


结果表明,从数据库返回的字符串
pass
后面有空格来填充128 chr DB字段的长度(一个20个字符的密码末尾有108个空格)


使用
pass.TrimEnd()

修复了为什么要对哈希进行base64编码?另外,您使用的是哪种哈希算法?这实际上与base64编码无关,而是与哈希大小有关?
passwordFormat=3
hash不是问题的一部分。。。很抱歉造成混淆。能否提供长度介于8到15个字符之间的示例字符串,编码为Base64时超过255个字符?示例过程为BCCRSPP12019预期结果:结果=
QnjWXez3+Fcb9dgSygTuRTnYbxgLVhywsAVWZRQt6Ro=
实际结果:在《代码》中,中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个在一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个ZBYCO92LMNBPLP1X4UIRFVSEQMJLDWNOgoynqcunisgfer6xnxc=
Public Function EncodePassword(ByVal pass As String, ByVal passwordFormat As Integer, ByVal salt As String) As String
    If passwordFormat = 0 Then Return pass
    Dim bIn As Byte() = Encoding.Unicode.GetBytes(pass)
    Dim bSalt As Byte() = Convert.FromBase64String(salt)
    Dim bAll As Byte() = New Byte(bSalt.Length + bIn.Length - 1) {}
    Dim bRet As Byte() = Nothing
    Buffer.BlockCopy(bSalt, 0, bAll, 0, bSalt.Length)
    Buffer.BlockCopy(bIn, 0, bAll, bSalt.Length, bIn.Length)

    If passwordFormat = 1 Then
        Dim s As HashAlgorithm = HashAlgorithm.Create(_HashAlgorithmType)

        If s Is Nothing Then
            Throw New ProviderException("Could not create a hash algorithm")
        End If

        bRet = s.ComputeHash(bAll)
    Else
        bRet = EncryptPassword(bAll)
    End If

    Return Convert.ToBase64String(bRet)
End Function