精华内容
下载资源
问答
  • 2021-07-27 02:42:43

    字节逐位倒排序加密法是以比特为单位的换位加密方法,用VB实现的具体算法是:

    (1) 以二进制模式打开源文件;

    (2) 从源文件第I位读取一个字节,假设为字母“A”,得到“A”的ASCII值为65;

    (3) 将65转换成八位二进制串为“01000001”;

    (4) 将“01000001”按字节逐位倒排序得另一个八位二进制串“10000010”;

    (5) 将“10000010”转换成十进制再写回源文件第I位置,完成一个字节的加密;

    (6) 重复(2)、(3)、(4)和(5),直到所有字节加密结束。

    为了使程序模块化,我们用函数过程ByteToBin完成将字节型数据转换成二进制串(其实质就是将十进制数转换成八位二进制串);用函数过程BinToByte将二进制串转换成字节型数据(实质是将八位二进制串转换成十进制数):用函数过程Reverse将八位二进制串逐位倒排序。具体程序如下:

    Function ByteToBin(m As Byte) As String ' 将字节型数据转换成八位二进制字符串

    Dim c$

    c$ =

    Do While m 0

    r = m Mod 2

    m = m \ 2

    c$ = r & c$

    Loop

    c$ = Right(00000000 & c$, 8)

    ByteToBin = c$

    End Function

    Function Reverse(m As String) As String ' 将八位二进制字符串颠倒顺序

    Dim i%, x$

    x =

    For i = 1 To 8

    x = Mid(m, i, 1) & x

    Next i

    Reverse = x

    End Function

    Function BinToByte(m As String) As Byte ' 将八位二进制串转换成十进制

    Dim x As String * 1, y%, z%

    z = 0

    For i = 1 To 8

    x = Mid(m, i, 1)

    y = x * 2 ^ (8 - i)

    z = z + y

    Next i

    BinToByte = z

    End Function

    Private Sub Command1_Click()

    Dim x As Byte, i%, fname$

    fname = InputBox(请输入要加密的文件名!注意加上路径名:)

    If Dir(fname) = Then

    MsgBox 文件不存在!

    Exit Sub

    End If

    Open fname For Binary As #1 ' 以二进制访问模式打开待加密文件

    For i = 1 To LOF(1) ' LOF函数是求文件长度的内部函数

    Get #1, i, x ' 取出第i个字节

    x = BinToByte(Reverse(ByteToBin(x))) ' 这里调用了三个自定义函数

    Put #1, i, x ' 将加密后的这个字节写回到文件原位置

    Next i

    Close

    MsgBox 任务完成!

    End Sub

    本例可以完成对任意文件的加密与解密,对同一文件作第一次处理为加密,第二次处理为解密。要调试本程序,可用记事本在C盘根目录下任意建立一个文本文件(假设为文件名为aaa.txt),其中的内容任意(可以包括字母、汉字、数字、回车符、换行符等)。运行本程序后,在输入文件名的对话框中输入文件名(如:“C:\aaa.txt”)后回车,即可完成对文件的加密。文件加密后,可以在记事本中打开该文件查看加密效果。如果想解密,可再次运行该程序并输入相同文件名。

    取消

    评论

    更多相关内容
  • 内容索引:VB源码,加密解密,文件加密 采用异或加密文件加密器,它可以对任何文件(TXT文本文件、OFFICE文件、EXE等),用些软件加密文件变为不可运行,且打开后是乱码。解密时是将加密后的文件重新再次加密...
  • VB文件加密并存盘

    2021-05-07 07:54:59
    内容索引:VB源码,文件操作,加密,保存 VB文件加密并存盘,加密后保存为指定格式,程序界面如上所示。
  • 该程序是在VB6.0的基础上开发的,支持数据的加密和解密,还有可以对文件进行加密和解密。用户可以根据自己的密钥进行个性化的加密和解密。
  • 摘要:VB源码,文件操作,加密文件夹 VB加密文件夹,Visualbasic6.0进行文件夹加密的例子,选择需要加密的文件夹,点击“加密”按钮即可。操作简单方便,不过作为一个成形的软件,似乎要做的功能还挺多,但是你可把此...
  • VB 文件加密

    2010-06-07 16:18:26
    VB 文件加密 VB 文件加密 VB 文件加密
  • 实现文件加密,VB源码,VB文件加密机,有兴趣的可以用一下试试
  • VB文件加密

    2013-05-10 22:31:43
    vb 文件加密 源代码 欢迎使用 网络
  • 加密vb文件工具v1.0.zip

    2020-02-24 10:07:43
    注:为防止杀毒软件误删,打开时的密码为:12345,使用方法:1.使用前,解压缩。2.将要加密vb脚本拖到此“加密vbs.exe”文件中,一定要备份此要加密文件加密后无法恢复!
  • VB6-AES加密算法源码,无错,可直接运行。密钥长度支持128 Bit,192 Bit,256 Bit。支持字符串加密文件加密
  • VB文本加密 特别设计到中文加密 让很多人费尽周折,经常会碰到解密中文出现乱码的情况下面这篇文章将对此做了说明计算机世界2000年第36期实现中文文本的加密方法武汉交通科技大学计算机科学与工程系 吴业福本文介绍了...

    VB文本加密 特别设计到中文加密 让很多人费尽周折,经常会碰到解密中文出现乱码的情况

    下面这篇文章将对此做了说明

    计算机世界2000年第36期

    实现中文文本的加密方法

    武汉交通科技大学计算机科学与工程系 吴业福

    本文介绍了在VB6中实现中、英文文本加、解密的技术细节。文中深入地探讨了VB6中汉字加、解密的原理、散列函数的构造方案,在加、解密方产生散列函数的种子值(初始值)和用于加、解密的随机序列数的方法。最后该技术实现了一个简单的128位的加、解密方案。文中涉及到了加密技术的一些主要关键概念及其具体实现技术,如散列函数、加密强度等。

    绪 论

    加密(Encryption)是信息保护的一种必不可少的手段。目前有两种基本的加密方法,即私钥加密和公钥加密。用VB既可用自定义算法实现简便的私钥加密,也可通过调用Crypto API接口实现复杂的公钥加密。

    本文介绍一种私钥加密技术,不仅能加密英文文本,而且能有效加密汉字。

    密文文本=HASH(DateTime)+HASH(DateTime+Key)+ Encryption(Text,HASH(DateTime)+HASH(DateTime+Key)

    VB具体实现技术

    1. 基本加解密函数(XOR)

    在VB中提供了一个XOR函数,它既可对字符也可对数字、布尔变量进行异或,两次异或的结果即为原值。因此,它是基本加解密函数。

    例如:Ascw(“息”)XOR 28值为24943,24943 XOR 28值为24687,Chrw(24687) 值为“息”。

    2.汉字的加密与解密方法

    在VB中,字符的处理相当复杂,特别是汉字和英文字符混合处理,其结果更是无法预料。在VB内部,字符全部作为Unicode处理,并且VB支持三种类型的字符集,并提供了相应的字符处理函数。

    VB支持的三种类型字符集是:

    ⑴ ANSI:一个字节表示一个字符,汉字被作为两个 ANSI字符;

    ⑵ DBCS:双字节字符集,0~128表示ASCII字符, ASCII字符长度为1个字节,汉字等东亚字符的长度为2个字节,汉字被作为一个DBCS字符;

    ⑶ Unicode:用两个字节表示每个字符。ISO几乎为每种语言的每个字符和符号在0~65,535(216-1)范围定义了一个数字,汉字被作为一个Unicode字符。

    在VB6中,字符串的处理函数有ANSI/DBCS版本、二进制版本和Unicode版本。因此,对于汉字的处理相当复杂。

    例如:Asc(返回第一个字符的ANSI/DBCS字符代码);

    AscB(返回第一个字节的值);

    AscW(返回第一个Unicode字符之代码)。

    例如:Asc(“息”)之值为:-12382,Chr(-12382)之值为:息,AscW(“息”)之值为:24687,Chrw(24687)之值为:息。

    经过反复实验证实,使用Unicode字符集及Unicode字符集函数可较好地加密汉字。

    本加解密方案中,汉字和英文字符的加解密均使用下列函数:

    AscW( ):返回第一个Unicode字符之代码,每个英文和汉字均作为一个字符,其长度为1;

    Mid( ) :取子串,每个英文和汉字均作为一个字符;

    ChrW( ) :返回该代码所对应的Unicode字符,字符为英文或汉字;

    Len( ) 函数:返回字符串的长度,每个英文字符和汉字字符的长度均为1。

    其使用方法请见自定义函数Doxor( )中的语句: Public Sub DoXor(ByRef msFileText as String) ‘本函数用于对msFileText中的字符串进行XOR 27操作, 英文或汉字均作为一个字符来处理, ‘加密方调用该模块用于加密,解密方调用该模块用于解密。 ‘使用Unicode函数AscW 、ChrW可正确处理所有汉字 ‘使用ASC函数Asc 、Chr无法正确处理所有汉字 Dim intC As Integer Dim intB As Integer Dim lngI As Long ‘下面,用Rnd产生随机序列数, 然后根据Int(Rnd * 2 ^ 7)得到一个对应整数, ‘再用该整数与msFileText中字符XOR。 For lngI = 1 To Len(msFileText) intC = AscW(Mid(msFileText,lngI,1)) intB = Int(Rnd * 2 ^ 7) ‘选用<=127可正确处理汉字,ChrW(n):n 有一个范围 Mid(msFileText,1) = ChrW(intC Xor intB) Next lngI End Sub

    在对包含有汉字的文本(明文、密文)文件(.txt)进行读、写处理时,也要考虑汉字的问题,主要是长度问题,用不同的语句/函数,读出的结果不一样,有的超出实际长度。具体处理办法是:使用ASCII格式:

    1读明文、读密文: Open FileOldName For Binary As #1 sHead = Input(LOF(1),#1) Close #1

    注意:不能用下述方法,因为它将汉字作为两个字符处理,导致读出的sHead超出实际长度(超出长度=汉字个数): Open FileOldName For Binary As #1 sHead = Space(LOF(1)) Input #1,sHead Get #1,sHead Close #1

    2写密文、写明文: Open FileNewName For Binary As #1 ‘存为AscwII格式 Put #1,ET Close #1

    3.散列函数(HASH函数)

    散列函数(也叫哈希函数)是密码学和数学中的一个概念。其作用是能够基于给定的输入字串、文件或其他类型二进制数据产生一个独一无二值。此外,该函数采用的算法能够保证人们不能从它反向推得该值的原始信息。

    对于Hash函数,其初始值(种子值)的选择至关重要。为了保证产生和检查散列代码的双方使用相同的初始值,可以选择固定的伪随机初始值。

    在VB中提供了一个返回随机数值的函数Rnd( ),以及初始化随机数生成器的Randomize( ):

    Rnd函数格式:Rnd[(number)]。若number<0,每次都使用number作为随机数种子得到的相同结果。

    Randomize函数格式:Randomize[(number)]。Randomize用number将Rnd函数的随机数生成器初始化。该随机数生成器给number一个新的种子值。若省略,则用系统记时器返回的值作为新的种子值。若想得到重复的随机数序列,在使用具有数值参数的Randomize之前直接调用具有负参数值Rnd函数。

    本加解密方案中为保证发送方(加密方)和接收方(解密方)得到相同的随机种子值,在HASH函数中调用DOXOR之前初始化种子值(过程名为 initialize): Private Sub Initialize(vKeyString As String) Dim intI As Integer,intJ As Integer Randomize Rnd(-1) ‘得到初始值(种子值),每次调用初始值均相同 ‘根据初始值(种子值)得到随机数序列, 每次调用Initialize时,初始值均相同。 只要vKeyString相同,所产生的随机数序列一定相同 For intI = 1 To Len(vKeyString) intJ = Rnd(-Rnd * AscW(Mid(vKeyString,intI,1))) Randomize intJ Next intI End Sub

    有了上面的知识,就可以设计HASH函数。本加密解密方案中HASH函数如下: Public Function Hash(ET As String) As String Dim BitLenString as String, KeyString as String,FileText as String BitLenString= “12345678" KeyString = ET & BitLenString Call Initialize(KeyString) ‘根据KeyString产生随机数序列 FileText = ET & BitLenString Call DoXor(FileText) ‘根据上述随机数序列对FileText加密 KeyString = FileText Call Initialize(KeyString) ‘根据上述的加密结果产生新的随机数序列 FileText = BitLenString Call DoXor(FileText) ‘根据上述随机数序列对FileText加密,8位字符 Hash = FileText ‘8位字符送作HASH值 End Function

    4.加密过程实现 Public Sub Encrypt() Dim sHead As String,DH As String,ET As String,n As Long,, KeyString as String,FileText as String Dim PasswordChar FileOldName As String,FileNewName As String PasswordChar = InputBox(“加密口令:") FileOldName = InputBox(“明文文件名(.txt):") FileNewName = InputBox(“存放密文文件名(.txt):") Open FileOldName For Binary As #1 ‘FileOldName必须为ascwII格式 ET = Input(LOF(1),#1) Close #1 DH = Hash(Date & Str(Timer)) ‘加时间戳 sHead =“[Secret]"&DH &Hash (DH & PasswordChar) ‘产生明文的加密密钥,8+8+8位字符 KeyString = sHead Call Initialize(KeyString) ‘根据明文的加密密钥产生随机数序列 FileText = ET DoXor(FileText) ‘根据上述随机数序列对明文加密 ET = FileText Open FileNewName For Binary As #1 ‘存为ascwII格式 Put #1,sHead + ET Close #1 MsgBox (“加密完成!") End Sub

    5.解密过程实现 Public Sub Decrypt() Dim sHead As String, KeyString as String,FileText as String Dim DH As String,TH As String,n As Long Dim PasswordChar FileOldName As String,FileNewName As String PasswordChar = InputBox(“解密口令:") FileOldName = InputBox(“密文文件名(.txt):") FileNewName = InputBox(“存放明文文件名(.txt):") Open FileOldName For Binary As #1 sHead = Input(LOF(1),#1) Close #1 DH =Mid(sHead,9,8) ‘得到DH ET= Mid(sHead,25,Len(sHead) - 24) ‘得到密文 sHead =Mid(sHead,1,24) ‘得到解密密钥 If InStr(sHead,Hash(DH & PasswordChar)) <> 17 Then ‘口令鉴别 MsgBox (“口令不正确!") Exit Sub End If KeyString = sHead Call Initialize(KeyString) ‘用8+8+8位解密密钥产生解密随机数序列, FileText = ET DoXor(FileText) ‘根据上述随机数序列解密 ET= FileText ‘明文存入ET Open FileNewName For Binary As #1 ‘存为ascwII格式 Put #1,ET Close #1 MsgBox (“解密完成!") End Sub 加密位数的探讨

    本加解密方案的加密强度为8+8+8=24位。若要实现更多位的加密,对本方案稍加修改也可以。若要实现128位的加密强度,则可修改HASH 函数如下:BitLenString=任意128位字符。

    例如:BitLenString= “ ABCDEFGHIJKLMNOPQRSTUVWXYZ1234", 则加密位数为 30*3=90位。 小 结

    本加解密方案的最大特点之一是并未用用户口令直接去加密明文,而是将私钥进行HASH的映射(实现上也是加密)后,再与随机数序列等其他信息一起构成特定位数的加密字符串,去加密明文,使得加密强度与用户口令密码长度无关,并且加密方法更安全。

    本加解密方案的另一大特点是加密时使用了时间标志,所以每次加密后的密文都不一样。

    将本加密程序生成Active X DLL/EXE部件可直接在 Windows下的其他系统中运行。

    总结

    以上是编程之家为你收集整理的VB 实现中文文本的加密方法全部内容,希望文章能够帮你解决VB 实现中文文本的加密方法所遇到的程序开发问题。

    如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

    展开全文
  • 我制作了使用DES算法使用vb.net 2010加密flv和swf文件的应用程序。现在,我想使用Actionsript3对其进行解密并播放。 这是我的Vb代码。 我尝试将其转换为Actionsript3。 但是我无法取得好的结果。 我不是这两个主题的...
  • VB图片加密技术实例:将图片转换了Base64格式字符,任意图像转换为Base64文本,支持的图片文件格式|*.gif; *.jpg; *.jpeg; *.jpe; *.bmp; *.png; *.tif; *.tiff。如果有Base64文件查看程序,你可输入这段转换后的...
  • vb文件加密

    2008-03-13 15:21:07
    vb做的小东西,需要可以直接拿去改
  • VB实现文本文件加密解密的方法.pdf
  • VB文件加密系统论文及毕业设计是对四年所学的一次大检测,一般包括一个开题报告.用以介绍研究方向,描述VB文件加密系统论文研究的具体内容,VB文件加密系统毕业设计的进度安排.同时,开题报告也是后期程序设计与实现的...
  • VB.NET实现AES加密解密

    2017-08-22 17:49:27
    VB.NET实现AES加密解密代码,可直接使用
  • MD5 skey8位加密文件)/Form1.Designer.vb MD5 skey8位加密文件)/Form1.resx MD5 skey8位加密文件)/Form1.vb MD5 skey8位加密文件)/MD5 skey8位加密文件).vbproj MD5 skey8位加密文件)/MD5 skey8位...
  • Vb利用图片加密文件

    2021-05-18 04:49:08
    摘要:VB源码,加密解密,文件加密 Vb加密文件,利用图片加密文件加密对象.txt、.ini、.dat三种文件类型,使用图片加密这些文件,你见过吗?好奇的话就下载源码探访究竟如何实现的吧。  测试提示:一定要选择图片和...
  • VB实现对字符或者文件的AES加密VB6.0测试通过,很好的学习资料 VB实现对字符或者文件的AES加密VB6.0测试通过,很好的学习资料
  • VB AES加密解密类

    2013-03-13 20:01:02
    VB AES加密解密类模块 单独一个模块方便调用
  • VB6.0加密解密

    2018-02-27 17:40:45
    下面的命令生成包含所有必要的注册表项的 myTest.reg 文件。 此命令不更新注册表。 regasm myTest.dll /regfile:myTest.reg 下面的命令注册 myTest.dll 中包含的所有公共类,并生成和注册类型库 myTest.tlb,该类型...
  • VB文件加密、合并、批量重命名等小工具源程序
  • 本源码演示VB6.0实现的文件双重加密及解密功能,注意,在本程序中,把已经加密文件再次加密即是解密,测试时候加密文件 / 解密文件试一下。加密核心类请参考源码中的modCrypt.bas类文件
  • 在这个小程序中集合了VB加密文件、合并文件和批量重命名文件的操作,若需要某个功能的话,可找出具体的功能模块来使用。里面包括了EXE自解压解密外壳程序、文件分割程序,文件比较程序、文件合并程序等操作。
  • 摘要:VB源码,系统相关,加密狗,体育足球即时比分 Vb读取和写入加密狗数据,两个例子源码,一个是从加密狗中读取数据,一个是将数据写入加密狗,读取加密狗数据是一个判断注册码为例,获取加密狗中的数据与用户的输入...
  • VB中用加密的方法实现序列号验证源代码
  • MD5加密算法的VB6.0类模块实例
  • VB字符保密-字符加密例子,来源于VB软件防破解初探中的一个例子,核心代码如下:  Private Function ZiFujiemi(anum As Long, bnum As Long) As String  字符解密函数,用这个函数之前可以用相反的逆算来得到加密...
  • 内容索引:VB源码,文件操作,加密,解密,文件捆绑 VB使用图片进行文件捆绑,有点加密的意思,解梆时候当然也要用到本工具。这使得让一张精美的图片背后暗藏玄机,图片成为了你需要安全保存文件的寄生文件。提示:文件...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,627
精华内容 5,050
关键字:

vb 文件加密