Примеры однострочного кода на разных языках для MD5 - PullRequest
3 голосов
/ 04 ноября 2008

Я ищу примеры однострочного кода на разных языках для получения правильного результата MD5 (в виде строки, а не байта или чего-то еще). Например:

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

Я нашел VB особенно проблематичным в одной строке.

Ответы [ 7 ]

2 голосов
/ 04 ноября 2008

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)
              )
     );
2 голосов
/ 04 ноября 2008

Существует своего рода универсальность в том, как этого достичь. Как правило, каждый определяет подпрограмму, называемую md5_in_one_line (или Md5InOneLine), один раз и использует ее повсеместно, как если бы вы использовали библиотечную процедуру.

Так, например, как только кто-то определяет Md5InOneLine в C #, легко получить одну строку для получения правильных результатов.

2 голосов
/ 04 ноября 2008

Python

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

или, если md5 импортирован alrady:

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

Благодаря Грегу Хьюгиллу

1 голос
/ 04 ноября 2008

На всякий случай, если вам нужен VBScript: загрузите MD5 class с webdevbros и затем одной строкой:

hash = (new MD5).hash("some value")
1 голос
/ 04 ноября 2008

Разве вы не спрашиваете "на каких языках поддерживается стандартная библиотека для MD5?" Как сказал Джастис, на любом языке, который его поддерживает, это будет просто вызов функции, хранящий результат в строковой переменной. Даже без встроенной поддержки вы можете написать эту функцию на любом языке!

0 голосов
/ 04 ноября 2008

Coldfusion имеет несколько алгоритмов хеширования, по умолчанию используется MD5.

cfset var md5hashresult = hash ("string to hash")

0 голосов
/ 04 ноября 2008

Действительно ли имеет значение, если вы можете сделать MD5 в одну строку. Если это так много проблем, что вы не можете сделать это в VB в 1 строку, то напишите свою собственную функцию. Затем, когда вам нужно сделать MD5 в VB в одной строке, просто вызовите эту функцию.

Если все это важно сделать в одной строке кода, вот одна строка 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...