VB对数据进行加解解密

 

  简易加解密算法要求:

  1、 算法不宜过于复杂,且具有一定的保密性

  2、 对于高级语言很容易能实现

  4、 加密后的数据能正确地得到解密

  鉴于以上特点,从加密的主要方法看,换位法过于简单,特别是对于数据量少的情况很容易由密文猜出明文,替换法则不失为一种行之有效的简易算法。

  这种加解密数据的方法对任何字符都是有效的,不象有些简易加密算法,只对西文字符有效,对中文加密后再解密无法还原为原来的字符。根据以上原理可以写出以下VB函数,用于对数据进行加密和解密运算:

Private Function Encrypt(ByVal strSource As String, ByVal Key1 As Byte, _
ByVal Key2 As Integer) As String
Dim bLowData As Byte
Dim bHigData As Byte
Dim i As Integer
Dim strEncrypt As String
Dim strChar As String
For i = 1 To Len(strSource)
  ‘从待加(解)密字符串中取出一个字符
  strChar = Mid(strSource, i, 1)
  ‘取字符的低字节和Key1进行异或运算
  bLowData = AscB(MidB(strChar, 1, 1)) Xor Key1
  ‘取字符的高字节和K2进行异或运算
  bHigData = AscB(MidB(strChar, 2, 1)) Xor Key2
  ‘将运算后的数据合成新的字符
  strEncrypt = strEncrypt & ChrB(bLowData) & ChrB(bHigData)
Next
Encrypt = strEncrypt
End Function

  如果strSource="这是一个被加密的字符串&=188,Key2=24,则加密后的串为:"靥纓嚼嚖逗??游?掚嚎",重新将结果再次进行加密运算(田志刚博客:http://www.tianzhigang.com)则还原为原来的字符串。其中"?"处为不可见字符。

  以上程序只是从原理上分析后给出的实例,在实际运用当中应从字符密钥中分别求出Key1和Key2,然后将加密后的数据再更换Key1和Key2反复进行多次加密运算,并结合换位法实现更大难度的加解密算法。只是需要注意的是,加密和解密应分别写出对应的函数,解密的顺序和加密的顺序正好是相反的。

  以上程序在中文VB6中以不同语言的字符进行过多次测验并通过。



上一篇: VB创建可以输出函数的DLL
下一篇: VB利用API创建文件目录
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: vb
相关日志:
评论: 0 | 引用: 0 | 查看次数: 2627
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭

 广告位

↑返回顶部↑