我正在寻找各种语言的一行代码示例以获得有效的 MD5 结果(作为字符串,而不是 bytehash 或你有什么)。例如:
PHP: $token = md5($var1 . $var2);
我发现 VB 在一行中做起来特别麻烦。
我正在寻找各种语言的一行代码示例以获得有效的 MD5 结果(作为字符串,而不是 bytehash 或你有什么)。例如:
PHP: $token = md5($var1 . $var2);
我发现 VB 在一行中做起来特别麻烦。
Python
token = __import__('md5').new(var1 + var2).hexdigest()
或者,如果md5
已经导入:
token = md5.new(var1 + var2).hexdigest()
感谢格雷格·休吉尔
如何实现这一点有一种普遍性。通常,定义一个称为md5_in_one_line
(or Md5InOneLine
) 的例程一次,并在所有地方使用它,就像使用库例程一样。
因此,例如,一旦Md5InOneLine
在 C# 中定义,就可以轻松获得正确的结果。
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)
)
);
您不是真的只是在问“哪些语言有标准库支持 MD5?” 正如Justice所说,在任何支持它的语言中,它只是一个函数调用,将结果存储在一个字符串变量中。即使没有内置支持,您也可以用任何语言编写该函数!
以防万一您需要 VBScript:从 webdevbros 下载MD5 类,然后使用一行:
hash = (new MD5).hash("some value")
是否可以在一行中执行 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 中。
Coldfusion 有一堆散列算法,MD5 是默认的。
cfset var md5hashresult = hash("字符串到哈希")