VB.NET学习笔记(一):MD5、SHA256、3DES加密算法

本文介绍了VB.NET中加密算法的基础,包括System.Security.Cryptography命名空间的功能,MD5、SHA256、3DES等加密算法的使用,并提供了加密服务和代码实例,讲解如何在实际应用中保护数据安全。
摘要由CSDN通过智能技术生成

测试环境:windows10和Microsoft Visual Studio 2010

文章要点:

1、System.Security.Cryptography介绍

2、加密算法介绍

3、使用加密服务

4、加密代码实例

        电子商务的爆炸性增长需要保护更多的保密数据,对安全算法的需要也日益增加。

        1、System.Security.Cryptography介绍

        VB6要加密算法的代码需要自己写,而在VB.NET加密算法的代码都已经封装在Microsoft .NET 公共语言运行库 (CLR) 的 System.Security.Cryptography 命名空间里,通过编程访问各种加密服务并入应用程序来加密和解密数据、确保数据完整性。

        Cryptography 命名空间的主要功能是提供用来实现算法(例如加密和创建散列)的类。这些算法是使用包含两级继承的可扩展方式来实现的。抽象基类(例如 AsymmetricAlgorithm 或 HashAlgorithm)位于层次结构的顶端并表示算法类型。然后从顶级类派生出第二级抽象类,为算法提供公开的接口。例如,SHA1(安全散列算法)类是从 HashAlgorithm 派生的,其中包含 SHA1 算法特有的方法和属性。最后,从第二级抽象类派生出算法的实现,这是大部分客户端应用程序实例化并使用的算法。在这个具体级别上,这些实现可以是托管的、非托管的或两者兼具。

        非托管的实现通常带有后缀“CryptoServiceProvider”(例如,SHA1CryptoServiceProvider),表示该实现实际上是由加密服务提供程序 (CSP) 提供的。CSP 安装在操作系统层,起了 Crypto API 包装程序的作用。托管的实现带有后缀“Managed”(例如 SHA1Managed),这些实现不依赖于 Crypto API,因此完全是由托管代码实现的。

        关于这些算法还需要注意的是,当这些具体的类被实例化时,默认构造函数总是导入该算法的具有合理、安全值的默认参数(如果可能)。例如,依赖于公钥密码的不对称算法将生成随机密钥对,而对称算法则生成一个随机密钥和一个初始化矢量 (IV) 并自动设置诸如 Mode 和 Padding 等属性。此外,如果有可能,这些算法将使用“strong”默认值。

        System.Security.Cryptography 命名空间的第二个主要类集合包括数据加密和解密进程中使用的类,以及各种 helper 类。命名空间中包含的类包括 RandomNumberGenerator 的抽象类(从中派生出 RNGCryptoServiceProvider),以及 ToBase64Transform 和 FromBase64Transform 类(用于与 base64 之间来回转换数据)。

       除了提供加密算法以外,Cryptography 命名空间还包含子命名空间 X509Certificates。其中只包含三个用于表示和管理 Authenticode X.509 v.3 证书的类。

        Cryptography 命名空间还包括子 XML 命名空间,.NET Framework 的安全系统使用该空间对 XML 对象进行数字化标记。该框架附属于有关 XML 签名语法和处理的 W3C 规范草案 (http://www.w3.org/TR/2000/WD-xmldsig-core-20000228/)。该规范包括用于创建和表示数字签名的 XML 语法和处理规则,可以应用于包含该签名的 XML 文档的任何内部或外部内容。尽管该规范目前还没有强调 XML 的加密,但为 XML 文档提供完整性、消息验证和签名者身份验证服务无疑是重要的。

        Cryptography 命名空间还包括名为 KeyedHashAlgorithm 的抽象类(请参见图 5)。在 HMACSHA1 和 MACTripleDES 类中实现的算法是从 KeyedHashAlgorithm 派生的,用来生成消息验证代码 (MAC)。只要发送者和接收者共享一个密钥,MAC 就可用于确定通过不安全信道发送的数据是否被篡改。

        2、加密算法介绍

        (1)、对称加密(DES、3DES、AES、RC6、TEA等)

        所谓对称就是指加密解密中使用的key值是一样的,这种加密算法也是我们大家日常用的最多的加密算法了,这类加密算法一般公开, 遭受考验的也主要是key的长度。想象A加完密的密文发送给B,如果B想知道原文,还要根据解密算法解开才可以 ! 因此key值的保密性在这类应用中的重中之重!

        SymmetricAlgori

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值