System.Security.Cryptography.ProtectedData
Namespace: System.Security.Cryptography
Assembly: System.Security (in System.Security.dll)
using System;
using System.Collections;
using System.Security.Cryptography;
using System.Text;
public class DataProtectionSample
{
// Create byte array for additional entropy when using Protect method
static byte[] _additionalEntropy = { 9, 8, 7, 6, 5 };
public static void Main()
{
//Original data
string secret = "Magic";
PrintValues("The original data is:", secret);
//Convert to bytes
byte[] secretInBytes = Encoding.UTF8.GetBytes(secret);
PrintValues("The original data in bytes is:", secretInBytes);
//Encrypt the bytes
byte[] encryptedSecret = Protect(secretInBytes);
PrintValues("The encrypted byte array is:", encryptedSecret);
// Decrypt the bytes
byte[] originalDataInBytes = Unprotect(encryptedSecret);
PrintValues("The original data in bytes is:", originalDataInBytes);
//Convert to string
string originalData = Encoding.UTF8.GetString(originalDataInBytes);
PrintValues("The original data is:", originalData);
}
public static byte[] Protect(byte[] data)
{
// Encrypt the data using DataProtectionScope.CurrentUser.
// The result can be decrypted only by the same current user.
return ProtectedData.Protect(data, _additionalEntropy, DataProtectionScope.CurrentUser);
}
public static byte[] Unprotect(byte[] data)
{
//Decrypt the data using DataProtectionScope.CurrentUser.
return ProtectedData.Unprotect(data, _additionalEntropy, DataProtectionScope.CurrentUser);
}
public static void PrintValues(string header, IEnumerable detail)
{
Console.WriteLine(header);
foreach (var item in detail) { Console.Write("\t{0}", item); }
Console.WriteLine();
}
}
Source: http://stevenhollidge.com/blog-source-code/DataProtectionSample.zip
No comments:
Post a Comment