php - VB.net + mySQL + md5 哈希建议

标签 php mysql vb.net md5

抱歉,如果这个问题已经得到解答。我查了一下,但找不到任何具体内容。

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

我在密码部分遇到困难 - 论坛使用带有 4 个字符盐的 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

关于php - VB.net + mySQL + md5 哈希建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18089274/

相关文章:

javascript - 创建自定义表单以使用 Stripe 接受信用卡

php - Laravel 选择默认禁用选项

mysql - 将现有 MySQL 数据库导入到 Azure 中的 MySQL 数据库

asp.net - RDLC:本地报告处理期间发生错误

vb.net - 访问 Excel 中公开为 COM 的 .NET 函数

php - 在 php.ini 中设置 date.timezone 不起作用

php - 安全地散列密码 - 这么多相互矛盾的建议!

MySQL 组字段及其值

VB.Net 线程

php - mySQL 尝试获取过去 24 小时和过去 ​​60 分钟的帖子失败