标签:created memory var 加密 mem private return encoding crypto
public class Cryptography
{
private static readonly Byte[] IV =
{
131, 124, 213, 11, 241, 214, 201, 103,
138, 225, 188, 216, 116, 247, 152, 145
};
private Byte[] aesKey =
{
121, 249, 165, 183, 172, 16, 18, 24,
111, 129, 121, 13, 152, 114, 238, 114
};
private Boolean isDefaultKey;
public String Key
{
get { return Convert.ToBase64String(this.aesKey); }
set
{
this.aesKey = Convert.FromBase64String(value);
this.isDefaultKey = false;
}
}
public bool IsDefaultKey
{
get { return this.isDefaultKey; }
}
public Byte[] Encrypt(Byte[] plainData)
{
using (var aesProvider = new AesCryptoServiceProvider())
{
using (var stream = new MemoryStream())
{
using (var cryptoStream = new CryptoStream(
stream,
aesProvider.CreateEncryptor(this.aesKey, IV),
CryptoStreamMode.Write))
{
cryptoStream.Write(plainData, 0, plainData.Length);
}
var encryptMessageBytes = stream.ToArray();
var bts = new Byte[IV.Length + encryptMessageBytes.Length];
Array.Copy(IV, 0, bts, 0, IV.Length);
Array.Copy(encryptMessageBytes, 0, bts, IV.Length, encryptMessageBytes.Length);
return bts;
}
}
}
public Byte[] Decrypt(Byte[] encryptionData)
{
using (var aesProvider = new AesCryptoServiceProvider())
{
using (var stream = new MemoryStream())
{
var iv = new Byte[16];
Array.Copy(encryptionData, 0, iv, 0, iv.Length);
using (var cryptoStream = new CryptoStream(
stream,
aesProvider.CreateDecryptor(this.aesKey, iv),
CryptoStreamMode.Write))
{
cryptoStream.Write(encryptionData, IV.Length, encryptionData.Length - IV.Length);
}
return stream.ToArray();
}
}
}
public String EncryptString(String plainString)
{
var buffer = Encoding.UTF8.GetBytes(plainString);
var encryptMessageBytes = this.Encrypt(buffer);
return Convert.ToBase64String(encryptMessageBytes);
}
public String DecryptString(String encryptedString)
{
var buffer = Convert.FromBase64String(encryptedString);
var decryptMessageBytes = this.Decrypt(buffer);
return Encoding.UTF8.GetString(decryptMessageBytes);
}
}
标签:created memory var 加密 mem private return encoding crypto
原文地址:http://www.cnblogs.com/qindy/p/6664401.html