繁体   English   中英

VB.net + MySQL + md5哈希建议

[英]VB.net + mySQL + md5 hashing advice

抱歉,如果已经回答。 我看了一下,但是找不到任何具体的东西。

我正在VB.NET中编写一个程序,该程序使用IP Board 3.4.5与Internet论坛共享登录名。

我在密码部分遇到了困难-论坛使用带有4个字符的salt的md5哈希。 该文档使用PHP如下表示:

$hash = md5( md5( $salt ) . md5( $password ) );

我需要使用VB.NET达到相同的结果,任何人都可以给我一个有关如何实现此目标的指针吗?

虽然我不熟悉盐应该如何工作,但我创建了一个函数,该函数对密码和盐进行哈希处理,然后将其用作输入以创建最终的哈希。

您将需要这些:

Imports System.Security.Cryptography
Imports System.Text
Imports System.IO

要运行此命令:

Private Function CreateMD5(password As String, salt As String) As String
    Dim passwordBytes() As Byte = Encoding.UTF8.GetBytes(password)
    Dim saltBytes() As Byte = Encoding.UTF8.GetBytes(salt)
    Dim saltedPasswordHash As Byte()

    Dim md5Hasher As MD5 = Security.Cryptography.MD5.Create()
    Dim buffer As New MemoryStream
    Dim writer As New StreamWriter(buffer) With {.AutoFlush = True}

    Try
        writer.Write(md5Hasher.ComputeHash(passwordBytes))
        writer.Write(md5Hasher.ComputeHash(saltBytes))
        buffer.Position = 0
        saltedPasswordHash = md5Hasher.ComputeHash(buffer)
    Finally
        writer.Dispose()
        buffer.Dispose()
        md5Hasher.Dispose()
    End Try

    Return String.Concat(BitConverter.ToString(saltedPasswordHash).Split("-"c))
End Function

用法示例:

Dim saltedHash As String = CreateMD5("password", "salt")
Console.WriteLine(saltedHash)

输出:

CDA7359AB6408E7F0088CAB68470D5FE

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM