精华内容
下载资源
问答
  • 加密解密密钥互为相反数,值不能过大,不然会出错,有不可打印字符
  • vb 字符串加密

    2019-10-04 08:31:24
    已知字符的ascii码可以用8位二进制数来表示,某同学想用以下加密方法进行加密:将原八位二进制码每四位进行前后交换 将得到的二进制码再转化为字符输出 即:0000 1111→1111 0000 解题思想:拿到这个题下手方向有两...

    第一次试水…只会vb(6.0)的某不知名高中生
    第一篇就讲讲之前遇到的一个很有意思的题好了:

    已知字符的ascii码可以用8位二进制数来表示,某同学想用以下加密方法进行加密:将原八位二进制码每四位进行前后交换
    将得到的二进制码再转化为字符输出 即:0000 1111→1111 0000

    解题思想:拿到这个题下手方向有两个 一是用mid函数强行进行交换 二是转化用16进制的数来考虑
    分析一下第一个思路:虽然是可行的但是写出代码会比较冗长(对原ascii值进行取余倒数为二进制再用mid函数)理解上会更简单 但原题是个填空题需要以一行代码实现交换 显然不太可行
    第二个:16进制数如18→81 会比较容易实现 而一行代码中实现交换并转为10进制输出也比较容易实现
    注意点:对于字符要进行单个取出处理(想起来当时演示的时候有人问为什么不直接全部先除得到对应的值 没能及时解答这里补上 )全除后要对首末位处理比较困难orz
    当时写的时候想过会不会有>9的情况 后来发现不用担心 进行╲及mod运算得到的都是<9的
    (为了可以适用于输入一连串字符通用加了个循环
    来看以下代码:

    x=text1.text 
     for i=1 to len (x)  
      c=asc (mid (x,i,1))   
      d=(c mod 16)*16+c╲16  
      y=y+chr(d)  
     next i  
     text2.text=y
    

    有更好的想法欢迎提出orz

    下次主题:实现输出不重复的随机数或者是讲基础算法((仅适用于入门观望的小白…佬可以无视

    展开全文
  • VB加密解密字符串

    2018-02-27 17:36:41
    Dim o Dim str as string Set o = CreateObject("MyEncrypt.DES") str = o.Encrypt("加密的明文", "8位数密匙(记住要用于解密)") str = o.Decrypt("解密的密文", "8位数密匙(加密时的密匙)")
  • VB字符串加密解密

    2021-05-12 18:20:40
    摘要:VB源码,加密解密,字符串加密 VB字符串加密解密,形式简单,代码简洁,便于学习,输入需要加密的字符串后,点击“加密”即可,也可以点击“解密”还原。最后可以清屏。
  • 用于解决普通小程序RSA加密不行,字符串超长的情况,切兼容正常的加密,注使用不用二次base64,与wx_rsa.js使用区别就是 // encStr= encrypt_rsa.encrypt(JSON.stringify(dataValue)); // encStr = RSA.hex2b64...
  • VB密文,字符串加密,解密的例子,将一段字符串变成密文,哈哈,按一定的规则变换字符串,变成不认识的格式,如上图所示的“密文”框内是已经被加过密的文字了,变得完全不可识别了,当然,经过解密还原后就可以看...
  • 文本字符串加密

    2017-12-05 10:09:06
    VB文本字符串加密 VB文本字符串加密 VB文本字符串加密
  • VB字符串加密解密模块 两个声明,一个加密,一个解密,调用如下: Encode("明文")或Encode(text1.text) 解决同上 Decode()
  • VB6 加密解密字符串

    千次阅读 2019-01-22 17:59:00
    Public Function EnCodeStr(ByVal password As String) As String Dim il_bit, il_x, il_y, il_z, il_len, i As Long Dim is_out As String il_len = Len(password) il_x =...
    Public Function EnCodeStr(ByVal password As String) As String
        Dim il_bit, il_x, il_y, il_z, il_len, i               As Long
        Dim is_out     As String
        il_len = Len(password)
        il_x = 0
        il_y = 0
        is_out = ""
        For i = 1 To il_len
                il_bit = AscW(Mid(password, i, 1))
                il_y = (il_bit * 13 Mod 256) + il_x
                is_out = is_out & ChrW(Fix(il_y))
                il_x = il_bit * 13 / 256
        Next
        is_out = is_out & ChrW(Fix(il_x))
        password = is_out
        il_len = Len(password)
        il_x = 0
        il_y = 0
        is_out = ""
        For i = 1 To il_len
                il_bit = AscW(Mid(password, i, 1))
                il_y = il_bit / 16 + 64
                is_out = is_out & ChrW(Fix(il_y))
                il_y = (il_bit Mod 16) + 64
                is_out = is_out & ChrW(Fix(il_y))
        Next
        EnCodeStr = is_out
    End Function
    
    Public Function DeCodeStr(ByVal password As String) As String
        Dim is_out     As String
        Dim il_x, il_y, il_len, i, il_bit             As Long
        
        il_len = Len(password)
        il_x = 0
        il_y = 0
        is_out = ""
        For i = 1 To il_len Step 2
                il_bit = AscW(Mid(password, i, 1))
                il_y = (il_bit - 64) * 16
                il_y = il_y + AscW(Mid(password, i + 1, 1)) - 64
                is_out = is_out & ChrW(il_y)
        Next
        
        il_x = 0
        il_y = 0
        password = is_out
        is_out = ""
        
        il_len = Len(password)
        il_x = AscW(Mid(password, il_len, 1))
        
        For i = (il_len - 1) To 1 Step -1
                il_y = il_x * 256 + AscW(Mid(password, i, 1))
                il_x = il_y Mod 13
                is_out = ChrW(Fix(il_y / 13)) & is_out
        Next
        DeCodeStr = is_out
    End Function
    

      

    转载于:https://www.cnblogs.com/wgscd/p/10305200.html

    展开全文
  • VB2008工程代码-加密汉字 字符串 Public Function StringEnDeCodecn(ByVal strSource As String, ByVal MA As Long) As String '该函数只中西文起到加密作用 '参数为:源文件,密码 On Error GoTo ErrEnDeCode...
  • RSA加密解密字符串

    2018-12-08 13:11:23
    RSA加密算法是一种非对称加密算法,RSA加密解密字符串VB.net实现。
  • VB源码--自定义数字&字符串加密工具 --VB源码 加密 解密 字符串 源码 *************以下为窗口及控件代码************ Private Sub Command1_Click() Label3.Caption = cipher(Text1.Text, Text2.Text) Label8....
  • 一个字符串加密解密的例子,应用很简单,可以直接使用,欢迎下载。
  • vb2005 字符串加密解密

    2010-02-23 13:01:08
    vb2005 字符串加密解密,源代码 ,很详细,供大家学习,加密文件使用
  • 字符串加密vb

    2007-12-21 12:07:42
    字符串加密,简单算法实现字符串加密
  • VB字符串加密解密源码.代码小巧简单,很实用
  • 一个简单实用的VB字符串加密、解密程序,可以是文本或字符,加密效果好,速度快,安全性高,而且代码易用易学,程序中还使用到了一个XP风格的进度条控件,VB新手朋友正好也可以研究一下进度条的使用。运行效果如演示...
  • vb字符串加解密

    2013-12-05 16:43:23
    vb字符串加解密函数,能够加解密所有字符
  • 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 实现中文文本的加密方法所遇到的程序开发问题。

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

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

    展开全文
  • VB.NET实现AES加密解密

    2017-08-22 17:49:27
    VB.NET实现AES加密解密代码,可直接使用
  • 简单好用的VB字符串加密解密函数

    千次阅读 2008-07-13 13:49:00
    Private Function Encrypt(ByVal StrSource As String) As String 加密 Dim BLowData As Byte Dim BHigData As Byte Dim i As Long Dim k As Integer Dim StrEncrypt As String Dim

    Private Function Encrypt(ByVal StrSource As String) As String    '加密     Dim BLowData As Byte     Dim BHigData As Byte     Dim i As Long     Dim k As Integer     Dim StrEncrypt As String     Dim StrChar As String     Dim KeyTemp As String     Dim Key1 As Byte

        For k = 1 To 30         KeyTemp = KeyTemp & CStr(Int(Rnd * (9) + 1))     Next         Key1 = CByte(Mid(KeyTemp, 11, 1) & Mid(KeyTemp, 27, 1))     For i = 1 To Len(StrSource)           StrChar = Mid(StrSource, i, 1)  '从待加密字符串中取出一个字符           BLowData = AscB(MidB(StrChar, 1, 1)) Xor Key1    '取字符的低字节和Key1进行异或运算           SHigData = AscB(MidB(StrChar, 2, 1))   '取字符的高字节           StrEncrypt = StrEncrypt & ChrB(BLowData) & ChrB(BHigData)    '将运算后的数据合成新的字符            Next i     Encrypt = KeyTemp & StrEncrypt

    End Function

     

    Private Function Decrypt(ByVal StrSource As String) As String     '解密     Dim BLowData As Byte     Dim BHigData As Byte     Dim i As Long     Dim k As Integer     Dim StrDecrypt As String     Dim StrChar As String     Dim KeyTemp As String

        Dim Key1 As Byte     KeyTemp = Mid(StrSource, 1, 30)         Key1 = CByte(Mid(KeyTemp, 11, 1) & Mid(KeyTemp, 27, 1))     For i = 31 To Len(StrSource)                 StrChar = Mid(StrSource, i, 1)    '从待解密字符串中取出一个字符          BLowData = AscB(MidB(StrChar, 1, 1)) Xor Key1   '取字符的低字节和Key1进行异或运算          BHigData = AscB(MidB(StrChar, 2, 1))      '取字符的高字节          StrDecrypt = StrDecrypt & ChrB(BLowData) & ChrB(BHigData)   '将运算后的数据合成新的字符          Next i     Decrypt = StrDecrypt

    End Function

    展开全文
  • 加密解密字符串.exe huanyin下载
  • 环境为VS2008 C#或VB ,SQL ,本人已测试通过,有人会说直接把连接写程序里不就行了,可以不用那个连接的,确实是这样的,不过只要你的项目中DataSet里有TableAdapter,那么App.config中的连接就是必不可少的...
  • 内容索引:VB源码,字符处理,URL,字符串 VB解析、加密标准URL字符串一例,创建规范的本地化URL,练习TXT控件在VB窗体中的使用,涉及的都是些基础的知识。
  • 字符串加密vb.net

    千次阅读 2007-04-26 00:35:00
    Imports Microsoft.VisualBasicImports System.Security.CryptographyPublic Class MD5Class MD5 MD5加密方法 Function Shared()Function Shared MD5Encrypt(ByVal PasswordString As String) As ...
  • 网上很多VB的md5算法,但不能加密中文字符串,虽然也生成了md5,但是是错误的,这个算法解决了该问题,附带了JS 的中文字符串MD5加密脚本。
  • VB字符串处理大全

    万次阅读 2018-09-16 11:56:53
    1 VBA中的字符串 2 VBA中处理字符串的函数  2.1 比较字符串  2.2 转换字符串  2.3 创建字符串  2.4 获取字符串的长度  2.5 格式化字符串  2.6 查找字符串  2.7 提取字符/字符串  2.8 删除空格  2.9 返回...
  • VB字符串自写加密

    2012-06-20 17:29:47
    VB字符串自写加密
  • VB常用字符串函数

    千次阅读 2015-02-27 09:27:30
    P=Asc(X) 返回字符串X的第一个字符的字符码  P=Chr(X) 返回字符码等于X的字符  [范例]:  (1)P=Chr(65)  ‘ 输出字符A,因为A的ASCII码等于65  (2)P=Asc(“A”)  ‘ 输出65  2. Len(X): 计算...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,651
精华内容 3,060
关键字:

vb对字符串加密