云安全:Windows Azure 中的加密服务和数据安全
2010-03-26 00:00:00 来源:WEB开发网您还能够访问 Windows Azure 中加密哈希功能的完整阵列,例如 MD5 和 SHA。以上内容对增强任何系统的安全性(如检测重复的数据、哈希表索引、消息签名和密码验证等)至关重要。
一致建议始终不创建您自己的加密算法或使用专有加密算法。.NET CSP 中提供的算法已得到证实并经过测试,已公开很多年供备份。使用 XOR 创建您自己的加密过程并不相同,并且不提供相同级别的数据安全性。
第二个建议是使用 RNGCryptoServiceProvider 类生成随机数字。这可以确保您的应用程序生成的随机数字始终具有极高级别的平均信息量,从而在模式上难以猜测。
以下代码实现了单个静态成员,该成员将返回随机的 32 位 int 值且满足加密学角度上的安全需要。通过使用 Cryptography 命名空间中提供的 RNGCryptoServiceProvider 中的字节生成器可以实现这一点:
public static int GenerateRandomNumber() {
byte[] GeneratedBytes = new byte[4];
RNGCryptoServiceProvider CSP = new RNGCryptoServiceProvider();
CSP.GetBytes(GeneratedBytes);
return BitConverter.ToInt32(GeneratedBytes, 0);
}
图 1 显示了在 Windows Azure 平台内部使用 CSP 的简单示例。公开了三个公共成员,用于在任何 Windows Azure 应用程序中使用。第一个成员接受二进制密钥和初始化向量 (IV) 及未加密数据的二进制缓冲区并返回其加密的等效方法。第二个成员通过解密数据执行相反的操作。第三个成员返回为该数据计算出的哈希值。在此请注意,我使用 Rijndael CSP 对提供程序进行托管访问。我还在二进制缓冲区中存储数据和密钥并在完成后进行改写。稍后将在讨论不变性时介绍本主题。
更多精彩
赞助商链接