CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

数据加密解密

楼主nswhy(南山翁)2002-04-05 09:28:40 在 VB / 基础类 提问

有谁有数据加密解密的源代码??????????? 问题点数:60、回复次数:6Top

1 楼gump2000(阿甘)回复于 2002-04-05 09:30:11 得分 10

http://202.98.116.66/amtd/code/index.asp?glz=密码Top

2 楼lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2002-04-05 09:43:26 得分 20

如何对字符串进行加密解密  
     
  本人在操作数据库时,考虑到该数据库还有可能被其他软件打开,所以想能否有另外一种方式把数据库中数据进行加密呢,也  
  就是说,即使别人利用其他的软件打开了该数据库,看到的也是一片乱码,根本不知道数据库进而是什么内容。出于这种情况,本人利用VB中自带  
  RND()函数的功能编写了如下加密解密方法。  
  当RND()的参数(我们称它为种子)为负值时,同一种子产生同一个随机序列,同时VB还具有强大的二进制技术功能。  
  这样我们可以按以下方法实现字符串内容的加密解密。  
   
  源程序如下:  
   
  Public   Function   StringEnDeCodecn(strSource   As   String,   MA)   As   String  
  '该函数只对中西文起到加密作用  
  '参数为:源文件,密码  
  On   Error   GoTo   ErrEnDeCode  
  Dim   X   As   Single  
  Dim   CHARNUM   As   Long,   RANDOMINTEGER   As   Integer  
  Dim   SINGLECHAR   As   String   *   1  
  Dim   strTmp   As   String  
  If   MA   <   0   Then  
  MA   =   MA   *   (-1)  
  End   If  
  X   =   Rnd(-MA)  
  For   i   =   1   To   Len(strSource)   Step   1   '取单字节内容  
  SINGLECHAR   =   Mid(strSource,   i,   1)  
  CHARNUM   =   Asc(SINGLECHAR)  
  g:   RANDOMINTEGER   =   Int(127   *   Rnd)  
  If   RANDOMINTEGER   <   30   Or   RANDOMINTEGER   >   100   Then   GoTo   g  
  CHARNUM   =   CHARNUM   Xor   RANDOMINTEGER  
  strTmp   =   strTmp   &   Chr(CHARNUM)  
  Next   i  
  StringEnDeCodecn   =   strTmp  
  Exit   Function  
  ErrEnDeCode:  
  StringEnDeCodecn   =   ""  
  MsgBox   Err.Number   &   "\"   &   Err.Description  
  End   Function  
   
  使用方法:  
  tmp=stringEnDecn("中华人民共和国",75)  
  如果要解密的话,只须键入以下语句:  
  tmp1=stringendecn(tmp,75)  
   
  如有不妥之处,请与我联系:  
  Flea_cyp@163.com      
   
     
  Top

3 楼lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2002-04-05 09:44:03 得分 20

如何对字符串进行加密解密  
     
  本人在操作数据库时,考虑到该数据库还有可能被其他软件打开,所以想能否有另外一种方式把数据库中数据进行加密呢,也  
  就是说,即使别人利用其他的软件打开了该数据库,看到的也是一片乱码,根本不知道数据库进而是什么内容。出于这种情况,本人利用VB中自带  
  RND()函数的功能编写了如下加密解密方法。  
  当RND()的参数(我们称它为种子)为负值时,同一种子产生同一个随机序列,同时VB还具有强大的二进制技术功能。  
  这样我们可以按以下方法实现字符串内容的加密解密。  
   
  源程序如下:  
   
  Public   Function   StringEnDeCodecn(strSource   As   String,   MA)   As   String  
  '该函数只对中西文起到加密作用  
  '参数为:源文件,密码  
  On   Error   GoTo   ErrEnDeCode  
  Dim   X   As   Single  
  Dim   CHARNUM   As   Long,   RANDOMINTEGER   As   Integer  
  Dim   SINGLECHAR   As   String   *   1  
  Dim   strTmp   As   String  
  If   MA   <   0   Then  
  MA   =   MA   *   (-1)  
  End   If  
  X   =   Rnd(-MA)  
  For   i   =   1   To   Len(strSource)   Step   1   '取单字节内容  
  SINGLECHAR   =   Mid(strSource,   i,   1)  
  CHARNUM   =   Asc(SINGLECHAR)  
  g:   RANDOMINTEGER   =   Int(127   *   Rnd)  
  If   RANDOMINTEGER   <   30   Or   RANDOMINTEGER   >   100   Then   GoTo   g  
  CHARNUM   =   CHARNUM   Xor   RANDOMINTEGER  
  strTmp   =   strTmp   &   Chr(CHARNUM)  
  Next   i  
  StringEnDeCodecn   =   strTmp  
  Exit   Function  
  ErrEnDeCode:  
  StringEnDeCodecn   =   ""  
  MsgBox   Err.Number   &   "\"   &   Err.Description  
  End   Function  
   
  使用方法:  
  tmp=stringEnDecn("中华人民共和国",75)  
  如果要解密的话,只须键入以下语句:  
  tmp1=stringendecn(tmp,75)  
   
  如有不妥之处,请与我联系:  
  Flea_cyp@163.com      
   
     
  Top

4 楼nswhy(南山翁)回复于 2002-04-05 16:44:52 得分 0

谢谢你们!!!!!!!Top

5 楼Tadpole0510(学习、学习)回复于 2002-04-05 17:15:22 得分 10

64位加密方法  
  Option   Explicit  
  'CIPHER.CLS  
   
  Private   mstrKey   As   String  
  Private   mstrText   As   String  
   
  '~~~.KeyString  
  'A   string   (key)   used   in   encryption   and   decryption  
  Public   Property   Let   KeyString(strKey   As   String)  
          mstrKey   =   strKey  
          Initialize  
  End   Property  
   
  '~~~.Text  
  'Write   text   to   be   encrypted   or   decrypted  
  Public   Property   Let   Text(strText   As   String)  
          mstrText   =   strText  
  End   Property  
   
  'Read   text   that   was   encrypted   or   decrypted  
  Public   Property   Get   Text()   As   String  
          Text   =   mstrText  
  End   Property  
   
  '~~~.DoXor  
  'Exclusive-or   method   to   encrypt   or   decrypt  
  Public   Sub   DoXor()  
  On   Error   Resume   Next  
          Dim   lngC   As   Long  
          Dim   intB   As   Long  
          Dim   lngN   As   Long  
          For   lngN   =   1   To   Len(mstrText)  
                  lngC   =   Asc(Mid(mstrText,   lngN,   1))  
                  intB   =   Int(Rnd   *   256)  
                  Mid(mstrText,   lngN,   1)   =   Chr(lngC   Xor   intB)  
          Next   lngN  
   
  End   Sub  
   
  '~~~.Stretch  
  'Convert   any   string   to   a   printable,   displayable   string  
  Public   Sub   Stretch()  
  On   Error   Resume   Next  
          Dim   lngC   As   Long  
          Dim   lngN   As   Long  
          Dim   lngJ   As   Long  
          Dim   lngK   As   Long  
          Dim   lngA   As   Long  
          Dim   strB   As   String  
          lngA   =   Len(mstrText)  
          strB   =   Space(lngA   +   (lngA   +   2)   \   3)  
          For   lngN   =   1   To   lngA  
                  lngC   =   Asc(Mid(mstrText,   lngN,   1))  
                  lngJ   =   lngJ   +   1  
                  Mid(strB,   lngJ,   1)   =   Chr((lngC   And   63)   +   59)  
                  Select   Case   lngN   Mod   3  
                  Case   1  
                          lngK   =   lngK   Or   ((lngC   \   64)   *   16)  
                  Case   2  
                          lngK   =   lngK   Or   ((lngC   \   64)   *   4)  
                  Case   0  
                          lngK   =   lngK   Or   (lngC   \   64)  
                          lngJ   =   lngJ   +   1  
                          Mid(strB,   lngJ,   1)   =   Chr(lngK   +   59)  
                          lngK   =   0  
                  End   Select  
          Next   lngN  
          If   lngA   Mod   3   Then  
                  lngJ   =   lngJ   +   1  
                  Mid(strB,   lngJ,   1)   =   Chr(lngK   +   59)  
          End   If  
          mstrText   =   strB  
  End   Sub  
   
  '~~~.Shrink  
  'Inverse   of   the   Stretch   method;  
  'result   can   contain   any   of   the   256-byte   values  
  Public   Sub   Shrink()  
  On   Error   Resume   Next  
          Dim   lngC   As   Long  
          Dim   lngD   As   Long  
          Dim   lngE   As   Long  
          Dim   lngA   As   Long  
          Dim   lngB   As   Long  
          Dim   lngN   As   Long  
          Dim   lngJ   As   Long  
          Dim   lngK   As   Long  
          Dim   strB   As   String  
          lngA   =   Len(mstrText)  
          lngB   =   lngA   -   1   -   (lngA   -   1)   \   4  
          strB   =   Space(lngB)  
          For   lngN   =   1   To   lngB  
                  lngJ   =   lngJ   +   1  
                  lngC   =   Asc(Mid(mstrText,   lngJ,   1))   -   59  
                  Select   Case   lngN   Mod   3  
                  Case   1  
                          lngK   =   lngK   +   4  
                          If   lngK   >   lngA   Then   lngK   =   lngA  
                          lngE   =   Asc(Mid(mstrText,   lngK,   1))   -   59  
                          lngD   =   ((lngE   \   16)   And   3)   *   64  
                  Case   2  
                          lngD   =   ((lngE   \   4)   And   3)   *   64  
                  Case   0  
                          lngD   =   (lngE   And   3)   *   64  
                          lngJ   =   lngJ   +   1  
                  End   Select  
                  Mid(strB,   lngN,   1)   =   Chr(lngC   Or   lngD)  
          Next   lngN  
          mstrText   =   strB  
  End   Sub  
   
  'Initializes   random   numbers   using   the   key   string  
  Private   Sub   Initialize()  
          Dim   lngN   As   Long  
          Randomize   Rnd(-1)  
          For   lngN   =   1   To   Len(mstrKey)  
                  Randomize   Rnd(-Rnd   *   Asc(Mid(mstrKey,   lngN,   1)))  
          Next   lngN  
  End   Sub  
   
   
   
  '-------------------------------------------------------------------------------  
  'Then   use   this   code   to   encrypt   text  
  Public   Sub   Encrypt()'call   encrypt  
  Dim   cipherTest   As   New   Cipher   'entire   encryption   process  
          cipherTest.KeyString   =   keytoencrypt.text'the   key   is   used   to   encrypt   the   text.   it   can   be   letters   and   numbers  
  cipherTest.Text   =   plaintext.text'plaintext   is   a   textbox   containg   what   you   want   to   encrypt  
          cipherTest.DoXor  
          cipherTest.Stretch  
          encryptedtext.text   =   cipherTest.Text'encryptedtext.text   is   where   the   encrypted   text   will   show   up  
  End   Sub  
  --------------------------------------------------------------------------------  
   
   
  'use   this   to   decrypt    
  Public   Sub   Decrypt()'call   decrypt  
          Dim   cipherTest   As   New   Cipher   'entire   decryption   process  
          cipherTest.KeyString   =   keyusedtodecrypt.text'keyusedtodecrypt.text   is   what   is   used   to   decrypt   the   text.   It   can   be   letters   or   numbers  
          cipherTest.Text   =   textyouwantdecrypted.Text'textyouwantdecrypted   is   a   textbox   containg   the   text   you   want   decrypted  
          cipherTest.Shrink  
          cipherTest.DoXor  
          decryptedtext.Text   =   cipherTest.Text'decryptedtext.text   is   where   the   decrypted   text   will   show   up  
          End   If  
  End   Sub  
  --------------------------------------------------------------------------------  
  Top

6 楼heman2000(柳枫)回复于 2002-04-17 15:33:48 得分 0

收藏Top

7 楼lvzhong()回复于 2002-04-17 16:31:23 得分 0

字符窜最简单的加密/解密方法---异或  
  一次异或加密  
  再异或一次解密  
  比如字符窜A和1异或之后被加密得到字符串B  
  字符串B再和1异或一次又得到字符串A  
   
  Top

相关问题

  • 数据库字段的加密解密?
  • 关于数据加密解密的问题
  • 寻求一种数据库的加密解密算法
  • 寻求一种数据库的加密解密算法
  • 紧急求救:des加密解密和数据库问题
  • [代码共享]用于数据加密解密的类
  • 数据加密解密问题!请大家都来帮我!
  • 加密解密
  • 弱弱的问:“设置数据库密码”和“加密/解密数据库”的区别
  • 求一篇关于数据传输加密解密技术的中英文翻译

关键词

  • 加密解密
  • 数据库
  • 函数
  • 数据
  • 加密
  • 密码
  • 软件
  • 内容
  • vb
  • stringendecodecn

得分解答快速导航

  • 帖主:nswhy
  • gump2000
  • lihonggen0
  • lihonggen0
  • Tadpole0510

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo