Вы можете добавить цифровую подпись к значению cookie и проверить подпись, когда будете читать ее обратно.Таким образом, если значение cookie будет изменено, оно будет очень очевидным.
private string sign(string hashStr, byte[] secret)
{
// Compute the signature hash
HMACSHA1 mac = new HMACSHA1(secret);
byte[] hashBytes = Encoding.UTF8.GetBytes(hashStr);
mac.TransformFinalBlock(hashBytes, 0, hashBytes.Length);
byte[] hashData = mac.Hash;
// Encode the hash in Base64.
string hashOut = Convert.ToBase64String(hashData);
return hashOut;
}
Редактировать: Исправлен кодировщик, так что он явно UTF-8.
Каккак правило, вы должны также обязательно добавить соль в строку перед вызовом, см .: Безопасный хеш и соль для паролей PHP