VB程序设计在网络安全中的应用

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:unix365
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:计算机网络中传输的信息涉及政府、军事、经济、文教等诸多领域,其中很多是敏感信息甚至是国家机密,所以难免会吸引夹自世界各地的“黑客”及各种病毒的攻击。这除了计算机网络固有的设计缺陷外,很多是因为计算机语言本身的安全漏洞或用户的不正当使用造成的。为此,本文首先讨论了登录口令的设置和处理,接着阐述了网络数据加密解密,最后分析了代理(Agent) 的实现。因此本文具有深刻的理论意义和广泛的实际应用。
  关键词:VB程序设计;网络安全;数据加密;代理
  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)12-21592-02
  
  Programming of Visual Basic Apply in the Network
  
  ZENG Yuan-mei
  (School of Dongguan University of Science and Technology Yecurity)
  Abstract:Computer network transmit information relate to the government、military affairs、economy、culture and education and so on, in this information has many sensitivity information including the nation secret, so hacker and many of sorts virus attack this information. Besides of the design bug of the computer network, a large number of is the security leak and malfeasance use of the computer language.So, in this paper,firstly discussed the log password,then expatiated network data encrypt,finally analysis the implement of the Agent. It has deeply signification in theory and extensive value in applications.
  Key words:programming of visual basic; network security; data encrypt; Agent
  
  1 引言
  
  Visual Basic (简称VB) 程序设计语言是创建于Windows 95 开发环境下具有图形用户界面应用程序的迅速简单的程序语言系统,使用它可以完成各种软件设计,因此自1991 年問世以来,就深受Windows开发者的喜爱,得到了迅速推广,是目前应用最广泛的程序设计语言之一。
  计算机网络变得日益重要, 事实上已经成为政府、军队、商业领域不可缺少的部分。随着技术的发展, 网络的规模更加庞大, 结构更加复杂, 支持的用户更多,提供更多的服务, 同时也对如何保证网络的正常运行、网络硬件及信息的安全、充分发挥各种网络设备的性能等方面提出了更高的要求。
  
  2 登录口令的设置和处理
  
  密码术是把可懂的文本变成不可懂的形式,以及通过其逆过程把不可懂的文本还原成原来文本的方法和技术。把可懂的文本变换成不可懂的形式的过程,称为加密,其逆过程,即把不可懂的文本还原成可懂的文本的过程,称为脱密或解密。原来的可懂文本称为明文,而变换为不可懂形式的文本称为密文。完成加密解密的算法称为密码体制。
  一种密码算法,可以实现两种类型的保密:理论保密和实际保密。理论保密基于这样的原则: 敌手所能获得的或接收到的信息总不足以推导出一个密文的唯一解。也就是说, 不管利用何种分析方法,对于可能的值, 则始终存在着某种程度的不确定性。实际上, 这是不可能达到的, 如果敌手能够获得足够数量的明文和与其相对应的密文, 那么, 是可以唯一地达到其密钥的。实际上保密是建立在这样的一种假设上, 即可以获得足够的信息来破译密码, 并且这一工作可以通过求解一个给定的密码分析问题所需的工作量(即工作因子) 来衡量。这类的保密可以这样来实现: 设计一种密码算法,使得即使在分析者具有特定的算法知识, 并已获得大量的密文/对应的明文或者获得明文/对应的密文的情况下, 要求解报文或密钥, 在计算上是不可行的。
  从密钥方式来分, 密码体制有两类: 传统密码和公开密钥密码。传统密码是指加密密钥与解密密钥相同的密码。公开密钥密码则是指加密密钥与解密密钥不相同, 其中加密密钥是公开的密码。
  开发JDS时, 采用的是传统密码方法,将明文的ASCII 码作一些调整而得到密文的ASCII码, 这样就能实现对明文的加密。具体做法如下:
  (1)对明文的第一个字符进行移位, 移位数为所有明文的ASCII 码的和;
  (2)对明文的以后各位进行移位, 移位数为前一位明文的ASCII 码加上所有明文的ASCII 码的和;
  (3)如果移位后的ASCII 码超出范围[33 ,126] , 则通过取余运算变换到上述范围;
  (4)将密文以ASCII 码链的方式存储在数据库中。
  例如, 假设明文为“njhgdx”, 则通过这种算法变为: “{tkaT [”。这种对明文加密的方法的特点是对不同的明文各位移位数是不同的, 从而给解密增加难度。
  上述过程用VB6. 0 实现如下(假设明文的最大长度为8):
  Public Function passHide (myPassWord As String) As String ′口令加密函数
  Dim I As Integer
  Dim tempPass1 (8) As Integer ′明文的各位字符的ASCII 码
  Dim tempPass2 (8) As String ′密文的各位字符
  Dim tempAsc As Integer ′临时ASCII 码
  Dim temPass As String ′密文
  Dim allLength As Integer ′各位明文的ASCII 码总和
  temPass = ″″: allLength = 0
  For I = 0 To Len (Trim (myPassWord) ) - 1
  tempPass1 ( I) = Asc (Mid ( Trim (myPassWord) , I + 1 , 1) ) ′将明文转换为ASCII 码
  allLength = allLength + tempPass1 ( I)
  Next I
  For I = 0 To Len (Trim (myPassWord) ) - 1
  If I > 0 Then
  tempPass1 ( I) = tempPass1 ( I) + tempPass1 ( I - 1) + allLength   Else
  tempPass1 ( I) = tempPass1 ( I) + allLength
  
  End If
  tempAsc = tempPass1 ( I) Mod 126
  If tempAsc < 33 Then
  tempAsc = tempAsc + 33
  End If
  tempPass 2 ( I) = Chr (tempAsc) ′將密文的ASCII 码对126 取余, 并转化为字符形式
  Next I
  For I = 0 To Len (Trim (myPassWord) ) - 1
  temPass = temPass + tempPass2 ( I)
  Next I
  passHide = temPass
  End Function
  当然,上述口令加密的方式只是一种较为粗糙的方法,但对一般的系统而言,则不失为一种有效的数据加密方法,即使能从数据库中获得密文, 也知道加密算法, 却不能轻易获得明文,从而达到在一定程度上对口令的保护。
  在JDS 中没有解密算法,在进行口令认证时,只要将输入的口令通过加密算法变成密文的形式,再对照数据库中存储的密文是否与该密文一致即可。
  
  3 网络数据加密解密
  
  在VB.NET可利用CroptoStream流中DESCryptoServiceProvider类的CreateEncryptor进行力加密,CreateDecryptor解密,然后通过MemoryStream流完成数据转换。
  加密函数是通过CryptoStream流将末加密文本,通过CreateEncrypto方法加密到MemoryStream流中,再转换输出加密后的数据,代码如下:
  Public Function EncryptData(ByVal Value Its String,
  ByVal desKey() As Byte, ByVal desIV() As Byte)
  Dim ms As New MemoryStream()
  Dim byt() As Byte
  Dim bin(4096) As Byte'这是加密的中间存储器
  Dim rdlen As Long = 8'这是写的字节的总数。
  Dim len As Integer'这是被次写的字节的数量。
  Dim des As New DESCryptoServiceProvider()
  Dim cs As New CryptoStream(ms, des.CreateEncryptor(desKey, desIV), CryptoStreamMode.Write)
  byt=Encoding. UTF 8.GetBytes(Value)
  cs. Write(byt,0, byt.Length)
  cs.FlushFinalBlock()
  cs.Close()
  Return Convert.ToBase64String(ms.ToArray})
  End Function
  解密函数是通过CryptoStream流将加密数据,通过CreateDecryptor方法解密到MemoryStream流中,再转换输出解密后的数据,代码如下:
  PublicFunction deEncryptData(ByValValueAs
  String, ByVal desKey() As Byte, ByVal desIV() As Byte)
  Dim ms As New MemoryStream()
  Dim byt() As Byte
  Dim bin(4096) As Byte
  Dim rdlen As Long=8
  Dim len As Integer
  Dim des As New DESCryptoServiceProvider()
  Dim cs As New CryptoStream(ms, des.CreateDecayptor(desKey, desIV), CryptoStreamMode.Write)
  byt=Convert.FromBase64String(Value)
  cs. Write(byt,0, byt.Length)
  cs.FlushFinalBlock()
  cs.Close()
  Return Encoding.UTF8.GetString(ms.ToArray())
  End Function
  
  4 代理(Agent) 的实现
  
  代理端程序在被管理设备上运行, 其主要功能是:
  (1)访问MIB 数据库, 显示设备的状态信息;
  (2)在管理器读取时将状态信息送到管理器端口;
  (3)响应管理器命令, 修改某些对象的值;
  (4)发送陷入报文。
  代理程序启动时生成代理实例Agent1, 加载SMI和MIB 库及TRAPS 库, 实现程序如下:
  Private Agent1 As New Agent
  Private Sub LoadMibs ()
  Agent1?M ib?Load " smi?mib" //代理装载SM I 库
  Agent1?Mib?Load "mib_ ii?m ib" //代理装载M IB 库
  Agent1?Mib?Load " trap?mib" //代理装载TRA PS库
  Dim MibList As New DartSt rings
  MibL ist?Add " smi?mib"
  MibL ist?Add "mib_ ii?mib"
  MibL ist?Add " t raps?mib"
  Agent?Mib?CompileM ibList
  End Sub
  库文件装载成功后, 代理从MIB中获取并显示被管理对象必要的信息, 程序如下:
  Private Sub SetMibsAndLabels ()
  Set vsysDescr = A gent1?M ib?Variables (" sysDescr" )
  vsysDescr?value = sysDescr?Text
  //从M IB 中获取sysDescr 值
  Set vsysObject ID = Agent1?Mib?Variables (" sysObject ID" )
  vsysObject ID?value = sysObject ID?Text
  //从M IB 中获取sysO bject ID 值
  …
  Set vsysUpTime = Agent1?Mib?Variables (" sysUpTime" )
  vsysUpTime?value = GetTickCount - gTickCountRef
  //计算出sysUpTime 值
  Set vtcpOutSegs = A gent1?Mib?Variables (" tcpOutSegs" )   vtcpOutSegs?1value = tcpOutSegs?Text
  //从M IB 中获取tcpO utSegs 值
  End Sub
  在代理端與管理器之间的互动中, 代理端主要是被动地响应管理器的命令, 各种复杂的工作都由管理器来完成。代理只是在收到管理器端的命令之后, 才通过Agent来完成修改操作。
  代理对M IB 数据库的访问功能编码如下:
  
  SetvsysUpTime = A ent1?Mib?Variables (" sysUpTime" )
  vsysUpTime?value = GetTickCount-gTickCountRef
  If (Agent1?Message?Type= snmpSet1) Or
  (Agent1?Message?Type= snmpSet2) Then SetReq= T rue
  If (Agent1?Message?Type= snmpGetNext1)Or
  (Agent1?Message?Type = snmpGetNext2) Then i= 1
  Agent1?Message?Type = snmpResponse1
  
  5 总结
  
  随着WWW技术越来越成熟,Java、CGI、Active X之类的网络新技术给用户带来了五彩缤纷的和便利的界面,同时也给“黑客”提供了攻击的新手段。这些新技术往往是通过一种新语言或者某种语言的扩展来实现的。因此,了解VB程序设计在网络安全中的应用,对设计完善的网络软件及防止网络攻击尤为重要。
  
  参考文献:
  [1]雷军程,柳小文, 许鞍铭.用vb实现Microsoft CryptoAPI加密[J].邵阳学院学报(自然科学版),2005,(01)
  [2]常晓荣,王磊. 使用CSP开发通用的加密功能[J].西安文理学院学报(自然科学版),2005,(02).
  [3]姚世军.陈楚香.用CryptoAPI生成密钥的方法[J].河南教育学院学报(自然科学版),2003,(04).
  [4]朱从旭,陈志刚.用VB实现文件混沌加密[J].电脑编程技巧与维护,2004,(09).
  [5]章程军,冯壁华.保密存取光学图象的一种重要方法[J].激光杂志,1996,(05).
  [6]张军,张庆来,杜勇,张文化.EFS加密数据恢复[J].甘肃科技,2004,(10).
  [7]孙护.直线法加密高程的应用限制和精度[J].测绘通报,1997,(04).
  [8]马景艳.用软件工程的方法实现加密演示系统[J].科学管理研究,2004,(S1).
  [9]石文昌.电子邮件系统R-MAIL的安全机制设计[J].广西科学院学报,1997,(02).
  [10]周德生,陈彪.单片机加密的硬件技术方法[J].黑龙江大学自然科学学报,1997,(03).
  “本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”
其他文献
摘要:论文针对Win2000 Server操作系统的系统特性,以及对常用系统组件的安全分析和组件选择,深入的论述了服务器安全配置的系列问题,以求大部分用户更深入的了解、使用Server操作系统,最大程度的提高系统的安全系数。  关键词:服务器;安全配置  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)12-21573-02    To Make a Thorough
期刊
摘要:DTS是一个强大而且灵活的数据库迁移工具,它能够实现各种异构数据源的数据转换。本文通过一个数据仓库实例,说明如何利用DTS将原始的业务数据源加载到数据仓库中,重点说明运用DTS中的ActiveX脚本语言转换数据。  关键词:DTS;数据仓库;数据转换;ActiveX  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)12-21514-02    Applicati
期刊
摘要:本文构建的系统是以PIC16F877单片机作为嵌入式系统的中央处理单元,并通过硬件集成电路S-7600A协议栈芯片来实现TCP/IP协议栈。因为以太网已经成为一种广泛的接入Internet的方式,可以通过RTL8019A以太网控制芯片把该系统接入以太网,然后通过以太网接入Internet,从而可实现对此嵌入式系统的远程访问和控制。  关键词:PIC;TCP/IP;嵌入式; 以太网  中图分类
期刊
摘要:在高校的文献管理过程当中,文献的借、还等工作的量大而重复烦琐,文献的管理管理难度大。而高校文献管理系统的开发使用,大大提高了高校文献资源管理的效率,尤其是在向管理自动化发展的时代,将极大地减轻资料管理的劳动力和提高工作效率。  关键词:ORACLE;FORM;图书;读者  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)12-21523-02    The Use
期刊
摘要:vsftpd是Linux操作系统下最常用的FTP服务器配置软件,可以通过对vsftpd.conf配置文件的修改来配置FTP服务,主要针对应用广泛的匿名FTP服务器的配置。通过本文对匿名FTP服务器配置的详细叙述,读者可以简单、快捷地在Linux操作系统上配置基于匿名用户的FTP服务器。  关键词:vsftpd;Linux;FTP服务;匿名用户  中图分类号:TP393文献标识码:A文章编号:
期刊
摘要:这篇文章针对UML建模工具的功能,从用户的角度提出了一种评价的方法。这种方法包括了对工具七个方面的功能进行测评,并且应用这一方法对当前最热门的两款工具Model Maker和Rational Rose进行了测评,通过测评最后得出了每种工具的优缺点及它们的适用场合。  关键词:功能评价;CASE工具;model maker;rational rose  中图分类号:TP311文献标识码:A文章
期刊
摘要:随着医疗体制改革,随着医院办公工作人员对计算机使用的日益普及,以及医院现代化管理的要求,需要提高我们医院办公的整体工作效率。利用网络通讯基础及先进的计算机技术,建设一套安全、可靠、开放、高效的信息网络和办公自动化、信息管理电子化系统,可以为医院的行政管理部门提供现代化的日常办公条件及丰富的综合信息服务,实现日常的办公事务处理自动化,以提高办公效率和管理水平,实现医院行政各部门日常业务工作的规
期刊
摘要:网络仿真是一种利用数学建模和统计分析的方法模拟网络行为,从而获取特定的网络特性参数的技术。网络仿真作以其独有的方法为网络规划设计提供客观、可靠的定量依据, 从而缩短网络建设周期,提高网络建设中决策的科学性,降低网络建设的投资风险。本文介绍了一种强有力的网络仿真工具-OPNET,分析了其主要特点、三层建模机制以及仿真方法和步骤,最后通过一个实例来讨论了OPNET技术在具体网络规划和设计中的应用
期刊
摘要:本文主要从大型数据库ORACLE环境四个不同级别的调整分析入手,分析ORACLE的系统结构和工作机理,从九个不同方面较全面地总结了ORACLE数据库的优化调整方案。   关键词:ORACLE数据库;环境调整;优化设计;方案   中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)12-21518-02      Large Oracle Database Design
期刊
摘要:以VRML为代表的WWW下的虚拟现实建模技术正在日益受到广泛的重视,基于VRML进行三维仿真建模具有交互、三维全景、多感知等特点。本文以“汽车”为研究对象,讨论、阐述了VRML构造三维模型的实现方法,并给出了建模效果验证。  关键词:VRML;车模;三维造型;节点  中图分类号:TP391文献标识码:A文章编号:1009-3044(2007)12-21594-02    Approach o
期刊