Я хочу зашифровать идентификатор, который я использую в файле cookie. Я использую ASP.NET 4.5, поэтому я хочу использовать MachineKey.Protect
для этого.
Код
public static string Protect(string text, string purpose)
{
if (string.IsNullOrEmpty(text))
return string.Empty;
byte[] stream = Encoding.Unicode.GetBytes(text);
byte[] encodedValue = MachineKey.Protect(stream, purpose);
return HttpServerUtility.UrlTokenEncode(encodedValue);
}
public static string Unprotect(string text, string purpose)
{
if (string.IsNullOrEmpty(text))
return string.Empty;
byte[] stream = HttpServerUtility.UrlTokenDecode(text);
byte[] decodedValue = MachineKey.Unprotect(stream, purpose);
return HttpServerUtility.UrlTokenEncode(decodedValue);
}
Когда я использую следующие тестовые данные:
Protect()
:
Ввод: 775119337
Выходные данные: (Cookie)
UnProtect()
:
Выход: NwA3ADUAMQAxADkAMwAzADcA0
Вывод, конечно, неверен, это должен быть исходный ID I Input.
Как расшифровать файл cookie с помощью MachineKey.UnProtect()
?