.NET中如何详细总结加密算法并实现自定义加密Helper类?
- 内容介绍
- 文章标签
- 相关推荐
本文共计4274个文字,预计阅读时间需要18分钟。
1.1 摘要信任许多人都使用.NET提供的加密算法,而在使用过程中,我们必须要了解各种加密算法的特点(对称或非对称,密钥长度和初始化向量等)。我也注意到很多人在.NET中实现加密时,没有详细说明这些细节。
1.1.1 摘要
相信许多人都使用过.NET提供的加密算法,而且在使用的过程我们必须了解每种加密算法的特点(对称或非对称,密钥长度和初始化向量等等)。我也看到过很多人写过.NET中加密算法总结,但我发现个别存在一些问题,很多人喜欢罗列每种加密算法的具体实现,假设我们要求实现AES和Triple DES加密算法,的确可以很多地分别给出它们的具体实现。
那我们真的有必要给出每个加密算法的具体实现吗?而且这样的设计不符合OOP设计思想,最重要的是我们要维护多个加密算法啊!OK接下来让我们实行一个可扩展和好维护的加密算法Helper。
1.1.2 正文
图1 Hash加密算法继承层次
从上面的继承层次我们可以知道.NET中提供七种Hash加密算法,它们都继承于抽象类HashAlgorithm,而且我们经常使用MD5,SHA1和SHA256等加密算法。下面我们将给出MD5和SHA1的实现。
图2 对称加密算法继承层次
从上面的继承层次我们可以知道.NET中提供五种对称加密算法,它们都继承于抽象类SymmetricAlgorithm,下面我们将给出它们的通用实现。
图3 非对称加密算法继承层次
从上面的继承层次我们可以知道.NET中提供四种非对称加密算法,它们都继承于抽象类AsymmetricAlgorithm,下面我们将给出RSA实现。
本文共计4274个文字,预计阅读时间需要18分钟。
1.1 摘要信任许多人都使用.NET提供的加密算法,而在使用过程中,我们必须要了解各种加密算法的特点(对称或非对称,密钥长度和初始化向量等)。我也注意到很多人在.NET中实现加密时,没有详细说明这些细节。
1.1.1 摘要
相信许多人都使用过.NET提供的加密算法,而且在使用的过程我们必须了解每种加密算法的特点(对称或非对称,密钥长度和初始化向量等等)。我也看到过很多人写过.NET中加密算法总结,但我发现个别存在一些问题,很多人喜欢罗列每种加密算法的具体实现,假设我们要求实现AES和Triple DES加密算法,的确可以很多地分别给出它们的具体实现。
那我们真的有必要给出每个加密算法的具体实现吗?而且这样的设计不符合OOP设计思想,最重要的是我们要维护多个加密算法啊!OK接下来让我们实行一个可扩展和好维护的加密算法Helper。
1.1.2 正文
图1 Hash加密算法继承层次
从上面的继承层次我们可以知道.NET中提供七种Hash加密算法,它们都继承于抽象类HashAlgorithm,而且我们经常使用MD5,SHA1和SHA256等加密算法。下面我们将给出MD5和SHA1的实现。
图2 对称加密算法继承层次
从上面的继承层次我们可以知道.NET中提供五种对称加密算法,它们都继承于抽象类SymmetricAlgorithm,下面我们将给出它们的通用实现。
图3 非对称加密算法继承层次
从上面的继承层次我们可以知道.NET中提供四种非对称加密算法,它们都继承于抽象类AsymmetricAlgorithm,下面我们将给出RSA实现。

