`

实例解说.Net构架下的加密编程

阅读更多
yesky(张悦■yesky)

http://www.yesky.com/SoftChannel/72342380484755456/20031225/1756613.shtml

很久以前就一直想写一个加密程序,但是一直感到太麻烦而没有动手,不过在前段时间学习.NET的过程中发现.NET的框架中封装了与加密有关的类。而且要在.NET中进行加密编程也是很容易的。

  现在就对本文使用的加密技术来做个讲解。首先我们得知道的是密钥这个专用名词。密钥可以这样来理解:X+Y=Z。其中X是要被加密的数据,Y就是密钥,Z是加密后的数据。如果在这个加法中将Y去掉,那吗就成了X=Z。所以Y在这里就可以被看成一个变量,而密钥也正是一个变量,当这个变量发生变化后加密的数据也就更着发生变化了。不过在有的资料中会将它称为向量。

  本文所采用的加密方法是被称为密钥散列值的方法。此方法是将要加密的数据和密钥进行组合产生新的加密了的数据。

  在.NET中可以说加密所要使用的类全部都集中在System.Security.Cryptography框架中,他包含了多种加密算法,所以我们使用的加密方法也是在System.Security.Cryptography框夹中。
下面我们就来看看如何实现数据的加密。

  首先在窗口中添加一个Button,3个Textbox,3个Label控件。将Button的Text属性设置为"确定"。将3个Label控件的Text属性设置分别设置为:文字,密钥,HMACSHA1。3个Textbox的属性保持默认。添加控件后的图如下:



  现在双击Button1在Button1_Click中输入下面的代码:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 Dim txt1() As Byte
 txt1 = System.Text.ASCIIEncoding.ASCII.GetBytes(TextBox1.Text)
 ’读取输入的文字,即要加密的文字。
 Dim key(16) As Byte
 key = System.Text.ASCIIEncoding.ASCII.GetBytes(TextBox2.Text)’读取密钥
 ’HMACSHA加密
 Dim hma As New System.Security.Cryptography.HMACSHA1(key)’声明加密类,既使用何种加密方法
 Dim csstream As New System.Security.Cryptography.CryptoStream(System.IO.Stream.Null, hma, Security.Cryptography.CryptoStreamMode.Write)’进行加密转换
 csstream.Write(txt1, 0, txt1.Length)
 ’将加密后的数据保存在TXT1这个变量中
 ’此时的txt1已经不是先前的要加密的文字,而是被刷新后的已经加密的数据。
 csstream.Close()
 TextBox3.Text = System.Text.ASCIIEncoding.ASCII.GetString(hma.Hash)’显示加密的文字。
End Sub


  程序说明:在本代码中我们主要是使用HMACSHA1算法实现了密钥散列值的加密。从代码可以看出要在.NET中进行数据的加密其实并不难,关键是选择System.Security.Cryptography中具体算法。

  总结:对于加密技术本文并没设计的太多,其原因是加密技术本身在大学中就是作为单独的一们学科,何况现在有很数专门的书在讨论加密算法,有兴趣的读者可以去看看。本文主要的意图是告诉大家,在.NET中已经将加密作为框架的一部分,我们可以根据自己的需要进行选择具体的加密算法。而且在.NET中使用加密编程并不会太难。

  加密文字"这一次我绝不放手",密钥"123"时运行的效果。如图



  加密文字"这一次我绝不放手",密钥"223"时运行的效果。如图



  加密文字"爱你直到永远ZHANG RUI RUI",密钥"223"时运行的效果。如图



加密文字"爱你直到永远ZHANG RUI RUI",密钥"123"时运行的效果。如图

分享到:
评论

相关推荐

    基于.net的RSA私钥加密 公钥解密的源码

    在.NET环境下,我们可以使用内置的System.Security.Cryptography命名空间中的类来实现RSA加密和解密。 首先,让我们深入了解一下RSA的工作原理。RSA的核心是两个密钥:公钥和私钥。公钥可以公开,任何人都可以获取...

    深入.NET平台和C#编程(PPT+源码)【第二章】

    在深入.NET平台和C#编程的第二章中,我们...总之,第二章的深入.NET平台和C#编程将涵盖.NET框架基础、C#高级特性的广泛内容,结合实例和源码,为学员构建扎实的.NET开发技能,为进一步的学习和项目实践打下坚实的基础。

    用.NET非对称加密算法实例

    本文将通过一个简单的.NET框架下的非对称加密(RSA)示例来展示如何在.NET中实现非对称加密过程。此示例适用于初学者了解非对称加密的基本原理及其在.NET中的实现方法。 #### 二、代码分析 ##### 1. 导入必要的...

    Instant VB.NET实例解析应用编程(PDF)

    VB.NET是Microsoft .NET框架下的一个面向对象的编程语言,它继承了Visual Basic的强大功能并加入了现代编程语言的特性,如类型安全、垃圾回收和泛型。 在VB.NET中,你将学习到如何创建控制台应用程序、Windows ...

    ASP.NET3.5 AJAX客户端编程精选166例(使用C#)

    ### ASP.NET 3.5 AJAX 客户端编程精选166例(使用C#) #### 一、ASP.NET 3.5与AJAX简介 ASP.NET 3.5是微软发布的一个重要的Web开发框架,它基于.NET Framework 3.5,提供了丰富的工具和API来帮助开发者构建动态的...

    VB.NET实例解析应用编程100例

    《VB.NET实例解析应用编程100例》是一本深入探讨VB.NET编程实践的书籍,旨在帮助开发者通过具体的实例学习和掌握VB.NET编程技术。这本书可能涵盖了从基础语法到高级特性的广泛主题,包括控件使用、数据访问、网络...

    深入.NET平台和C#编程第七章

    《深入.NET平台和C#编程》第七章的内容涵盖了.NET框架的核心概念、C#语言的高级特性以及如何在实际开发中应用这些技术。本章旨在帮助读者深入理解.NET平台的工作原理,提升C#编程技能,从而更好地利用.NET进行软件...

    深入.net平台和c#编程PPT-09

    以上内容仅仅是深入.NET平台和C#编程的冰山一角,实际的PPT可能会包含更多具体细节、实例和最佳实践,帮助开发者提升技能,更好地利用.NET平台进行软件开发。通过学习这些内容,你将能够编写出更高效、更健壮的.NET...

    深入.NET平台和C#编程 指导学习3标准参考

    《深入.NET平台和C#编程 指导学习3标准参考》是一本旨在帮助开发者深入理解和熟练运用.NET平台以及C#编程语言的书籍。在这个快速发展的技术领域中,掌握.NET平台和C#的核心概念、机制及最佳实践是至关重要的。本书...

    国密SM4,layui前端 和.net core后台 加密解密 .net加密解密

    1. SM4对称加密算法及其在.NET Core和JavaScript中的实现。 2. LayUI前端框架的使用,以及前端加密库如CryptoJS的集成。 3. C#的System.Security.Cryptography命名空间和SM4CryptoServiceProvider类的应用。 4. 前后...

    Java与.NET RSA加密解密(签名,验签)实例代码

    在IT行业中,安全是至关重要的,特别是在涉及到敏感数据...这个实例代码集合提供了一个实用的跨平台RSA加密解密和签名验证解决方案,对于理解不同编程环境下的RSA应用以及在实际项目中实现安全通信具有很高的参考价值。

    《asp.net/xml深入编程技术》

    - **ASP.NET的Web Forms控件**:探讨了ASP.NET Web Forms模型下的各种控件的使用方法,包括Button、TextBox等基础控件及GridView、Repeater等更高级的控件。 - **数据访问**:详细讲解了如何使用ADO.NET进行数据库...

    Visual_Basic.NET图形图像编程与实例详解

    Visual_Basic.NET图形图像编程与实例详解

    ASP.NET 2.0高级编程(特别版)》[英文CHM电子书+源代码].

    书中提供了大量的实例,可帮助读者快速掌握如何在.NET Framework下构建功能强大的ASP.NET应用程序。本书适用于有一些ASP.NET基础知识的编程人员以及准备迁移到ASP.NET 2.0的编程老手。内容较上一版更加全面、完善,...

    .NET文件加密实例源码

    在.NET框架中,C#是一种常用的编程语言,用于开发各种应用程序,包括文件处理和安全相关的功能。本实例源码着重于文件加密,这是确保数据安全的重要环节。在现代信息技术中,数据安全是至关重要的,而文件加密就是...

    vb.net控件应用编程实例教程

    本教程将深入探讨VB.NET控件应用编程,旨在通过实例帮助初学者和有一定经验的开发者更好地理解和掌握控件的使用。 首先,VB.NET提供了丰富的内置控件库,如Label、TextBox、Button、ListBox、ComboBox、CheckBox、...

    C#.net_经典编程例子400个

    1.1 菜单应用实例 2<br>实例001 带历史信息的菜单 2<br>实例002 菜单动态合并 3<br>实例003 像开始菜单一样漂亮的菜单 4<br>实例004 任务栏托盘菜单 5<br>实例005 可以...

    VB.Net中Socket异步编程的实例

    整个实例中,VB.Net的Socket异步编程允许服务器和客户端在不阻塞主线程的情况下进行通信,提高了程序的响应性和可扩展性。异步操作使得服务器可以同时处理多个连接,而客户端也能在发送或接收数据的同时执行其他任务...

    .NET异或加密数字实例源码

    你可以通过下载并查看这些源码文件来深入理解异或加密在.NET环境下的具体实现,并进一步学习如何在自己的项目中应用。同时,要注意在实际项目中,考虑使用更安全的加密标准,如AES(高级加密标准),以保护数据的...

    VB.NET编程技巧与实例集粹PDF,200个经典实例,非常好的教程.

    这本书“VB.NET编程技巧与实例集粹”是针对初学者和有一定基础的开发者设计的,通过200个经典实例,深入浅出地讲解了VB.NET的核心概念和技术。 首先,VB.NET的基础知识包括语法结构、变量和数据类型、控制流程(如...

Global site tag (gtag.js) - Google Analytics