使用hash和salt值来保护敏感数据

ZDNet软件频道 时间:2004-03-11 作者:Builder.com |  我要评论()
本文关键词:
由于网络安全威胁数量的不断增长,加密技术已经成为当前一项重要的程序开发工程。加密技术的基本原理是将有深刻含义的数据转化为没有任何含义的数据。
本文译自Builder.com,未经许可请勿转载

由于网络安全威胁数量的不断增长,加密技术已经成为当前一项重要的程序开发工程。加密技术的基本原理是将有深刻含义的数据转化为没有任何含义的数据。

.NET Framework囊括了与保护敏感数据有关的方方面面,其中最为流行的技术为散列法(hashing)。

重构数据

数据可以小至一个数据库连接的字符,也可以大如一个包含成千上万数据库记录的DataSet。基于此,保护数据的方法有很多种,其中最基本的方法即为散列法(hashing)。

Hash值是与基本文本数值有关的一种密码保护安全方式。一个安全的hash算法可以使得在无意或有意情况下都不能构建同样的hash值。

.NET Framework支持以下的hash运算规则:

  • MD5算法,其以任意长度的信息作为输入,以128字节而产生对应输入的经过加密之后的输出。

  • SHA1,即Secure Hash Algorithm (安全Hash算法,SHA),其使用196字节来加密数据。

  • SHA256是使用256字节来加密数据的SHA。

  • SHA384是使用384字节来加密数据的SHA。

  • SHA512是使用512字节来加密数据的SHA。

    支持算法的字节的范围为从128到512,更多字节将可以产生更加安全的结果。然而,更多字节也将降低程序的性能。

    利用这些知识要点,你可以选择SHA512算法,因为它使用的是最长的字节。但最终的决定取决于你的实际情况。

    加密技术与.NET

    .NET Framework通过System.Security.Cryptography名称空间来提供Hashing功能。它提供了很多类,由此可以利用不同的Hashing算法。这里列举了这些类的一些例子:

  • CryptographicException在密码操作过程中产生错误时将发送一个异常。

  • MD5CryptoServiceProvider为输入数据计算MD5 hash,其中使用的是由cryptographic service provider (CSP)提供的操作。

  • SHA1CryptoServiceProvider为输入数据计算SHA1 hash,其中使用的是由CSP提供的操作。

  • SHA256Managed为输入数据计算SHA256 hash。

  • SHA512Managed为输入数据计算SHA512 hash。

    为了更详细的信息,你可以阅读微软的关于System.Security.Cryptography空间名称的文档。现在让我们更为深入地讨论如何使用这些类来执行hashing。


  • 百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
    中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
    京公网安备:1101082134