3

我正在寻找各种语言的一行代码示例以获得有效的 MD5 结果(作为字符串,而不是 bytehash 或你有什么)。例如:

PHP: $token = md5($var1 . $var2);

我发现 VB 在一行中做起来特别麻烦。

4

7 回答 7

2

Python

token = __import__('md5').new(var1 + var2).hexdigest()

或者,如果md5已经导入:

token = md5.new(var1 + var2).hexdigest()

感谢格雷格·休吉尔

于 2008-11-04T03:01:51.480 回答
2

如何实现这一点有一种普遍性。通常,定义一个称为md5_in_one_line(or Md5InOneLine) 的例程一次,并在所有地方使用它,就像使用库例程一样。

因此,例如,一旦Md5InOneLine在 C# 中定义,就可以轻松获得正确的结果。

于 2008-11-04T03:02:15.893 回答
2

C#:

string hash = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(input, "md5");

VB几乎是一样的。

这里它没有使用 System.Web 命名空间:

string hash = Convert.ToBase64String(new System.Security.Cryptography.MD5CryptoServiceProvider().ComputeHash(System.Text.Encoding.UTF8.GetBytes(input)));

或以可读形式:

string hash =
     Convert.ToBase64String
     (new System.Security.Cryptography.MD5CryptoServiceProvider()
          .ComputeHash
              (System.Text.Encoding.UTF8.GetBytes
                  (input)
              )
     );
于 2008-11-04T03:05:25.950 回答
1

您不是真的只是在问“哪些语言有标准库支持 MD5?” 正如Justice所说,在任何支持它的语言中,它只是一个函数调用,将结果存储在一个字符串变量中。即使没有内置支持,您也可以用任何语言编写该函数!

于 2008-11-04T03:10:56.343 回答
1

以防万一您需要 VBScript:从 webdevbros 下载MD5 类,然后使用一行:

hash = (new MD5).hash("some value")
于 2008-11-04T03:31:03.510 回答
0

是否可以在一行中执行 MD5 真的很重要。如果你在VB中无法在1行中完成那么麻烦,那么编写你自己的函数。然后,当您需要在VB中一行执行MD5时,只需调用该函数即可。

如果在 1 行代码中完成所有操作非常重要,那么这里是 1 行 VB。不使用 System.Web 命名空间。

Dim MD5 As New System.Security.Cryptography.MD5CryptoServiceProvider() : Dim HashBytes() As Byte : Dim MD5Str As String = "" : HashBytes = MD5.ComputeHash(System.Text.Encoding.UTF8.GetBytes("MyString")) : For i As Integer = 0 To HashBytes.Length - 1 : MD5Str &= HashBytes(i).ToString("x").PadLeft(2, "0") : Next

这将散列“MyString”并将 MD5 和存储在 MD5Str 中。

于 2008-11-04T03:04:19.633 回答
0

Coldfusion 有一堆散列算法,MD5 是默认的。

cfset var md5hashresult = hash("字符串到哈希")

于 2008-11-04T03:46:34.057 回答