Zostawię poniżej oryginalną treść odpowiedzi dla odniesienia historycznego, ale należy zauważyć, że to NIE działa odpowiedź na oryginalne pytanie.
Zamiast tego zobacz odpowiedź z najważniejszymi głosami w tym wątku autorstwa @Terrapin w styczniu 2011 roku. Mam nadzieję, że PO zobaczy to i może zmienić zaakceptowaną odpowiedź. Heck, nawet oznaczę mody, żeby zobaczyć, czy można coś z tym zrobić.
Opierając się na odpowiedzi udzielonej przez Edwarda Smitha i dalszych komentarzach czuroskiego, oto moje rozwiązanie.
Po pierwsze, potrzebujesz funkcji XOR w języku C#, którą zaczerpnąłem z here i zmodyfikowałem nieznacznie.
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();
}
}
}
Następnie, weź wynik kodu XOR i kodu-64 go.Po uzyskaniu tego ciągu, MD5 miesza go. Wynik powinien być zgodny z wynikiem z oryginalnego fragmentu kodu:
#Hash(Encrypt(Form.UserPassword,GetSiteVars.EnCode))#
Jakiego algorytmu szyfrowania używa? – SLaks
Zobacz moją odpowiedź poniżej. –
Poniżej znajduje się kod CFMX_Compat z projektu Railo przeniesiony do C# – Seibar