云安全:Windows Azure 中的加密服务和数据安全
2010-03-26 00:00:00 来源:WEB开发网图 1 简单加密
public static byte[] SampleEncrypt(byte[] dataBuffer,
byte[] Key, byte[] IV) {
MemoryStream InMemory = new MemoryStream();
Rijndael SymetricAlgorithm = Rijndael.Create();
SymetricAlgorithm.Key = Key;
SymetricAlgorithm.IV = IV;
CryptoStream EncryptionStream = new CryptoStream(InMemory,
SymetricAlgorithm.CreateEncryptor(), CryptoStreamMode.Write);
EncryptionStream.Write(dataBuffer, 0, dataBuffer.Length);
EncryptionStream.Close();
byte[] ReturnBuffer = InMemory.ToArray();
return ReturnBuffer;
}
这是加密数据并以字节数组形式返回加密结果的最简单示例。这不是可以在未进行所有适当的安全性分析的情况下在安全环境中使用的代码,只是一个示例。
图 2 中的示例几乎与图 1 中的示例具有相同的结构。在本例中,我基于相同的密钥和 IV 解密数据,仅将加密的字节缓冲区作为参数使用。这里唯一真正的差别就是当创建加密流时,我指定创建对称解密器而不是先前创建的加密器。
图 2 简单解密
public static byte[] SampleDecrypt(byte[] dataBuffer,
byte[] Key, byte[] IV) {
MemoryStream InMemory = new MemoryStream();
Rijndael SymetricAlgorithm = Rijndael.Create();
SymetricAlgorithm.Key = Key;
SymetricAlgorithm.IV = IV;
CryptoStream EncryptionStream = new CryptoStream(InMemory,
SymetricAlgorithm.CreateDecryptor(), CryptoStreamMode.Write);
EncryptionStream.Write(dataBuffer, 0, dataBuffer.Length);
EncryptionStream.Close();
byte[] ReturnBuffer = InMemory.ToArray();
return ReturnBuffer;
}
更多精彩
赞助商链接