Я оставлю оригинальное содержание ответа ниже для исторической справки, но следует отметить, что это НЕ рабочий ответ на оригинальный вопрос .
Вместо этого посмотрите ответ с наибольшим количеством голосов в этой теме, @Terrapin в январе 2011 года. Я надеюсь, что ОП видит это и может изменить принятый ответ. Черт возьми, я даже отмечу моды, чтобы посмотреть, можно ли что-нибудь с этим сделать.
Чтобы продолжить ответ Эдварда Смита и последующие комментарии Чуроски, вот мое решение.
Во-первых, вам нужна функция XOR в C #, которую я взял из здесь и немного изменил.
using System;
using System.Collections.Generic;
using System.Text;
namespace SimpleXOREncryption
{
public static class EncryptorDecryptor
{
public static string EncryptDecrypt(string textToEncrypt, int key)
{
StringBuilder inSb = new StringBuilder(textToEncrypt);
StringBuilder outSb = new StringBuilder(textToEncrypt.Length);
char c;
for (int i = 0; i < textToEncrypt.Length; i++)
{
c = inSb[i];
c = (char)(c ^ key);
outSb.Append(c);
}
return outSb.ToString();
}
}
}
Затем возьмите результат XOR и закодируйте его в base-64. После того, как вы получили эту строку, MD5 хеширует ее. Результат должен соответствовать результату из исходного фрагмента кода:
#Hash(Encrypt(Form.UserPassword,GetSiteVars.EnCode))#