标题:一个简单的字符串加密函数
只看楼主
梦幻倩影
Rank: 5Rank: 5
等 级:职业侠客
威 望:8
帖 子:162
专家分:352
注 册:2016-8-19
结帖率:100%
已结贴  问题点数:20 回复次数:5 
一个简单的字符串加密函数
刚写的加解密函数,但密码不能为汉字
 
   Public Function str_jm(ByVal txtword As String, ByVal txtpass As String) As String
        Dim B1(10), B2(10), B3(10), q1, q2, i, j As Integer
        Dim txtpa As String = ""            '定义待加密字符串

        q1 = Len(txtpass)                        '密码的长度
        ReDim B1(q1)  '重定义数组B1为密码长度
        For j = 1 To q1                             'j=1到q循环
            B1(j) = Asc(Mid(txtpass, j, 1))         '取ASCII码(txtPass,第j(j=1 to q)个开始,取一个字符)
        Next j

        q2 = Len(txtword)                            'q2=textWord的长度
        ReDim B2(q2)  '重定义数组B1为密码长度
        ReDim B3(q2)  '

        For j = 1 To q2                             'j=1到q循环
            B2(j) = Asc(Mid(txtword, j, 1))         '取ASCII码(txtWord,第j(j=1 to q)个开始,取一个字符)
        Next j
        j = 0
        Try
            '开始加密处理
            For i = 1 To q2
                If j < q1 Then
                    j = j + 1
                Else
                    j = 1
                End If
                If B2(i) <> B1(j) Then
                    B3(i) = B2(i) Xor B1(j)
                Else
                    B3(i) = B2(i)
                End If
                txtpa &= Chr(B3(i))
            Next i

        Catch ex As Exception
            MsgBox(ex.Message + Str(B1(j)))

        End Try
        Return txtpa
    End Function

[此贴子已经被作者于2016-9-13 17:52编辑过]

2016-09-13 17:46
梦幻倩影
Rank: 5Rank: 5
等 级:职业侠客
威 望:8
帖 子:162
专家分:352
注 册:2016-8-19
得分:0 
上面是刚用 xor 写的:

str_jm("中国共产主义青年团","3445dfg") 执行一次加密,再执行一次解密 没问题,但
str_jm("中国共产主义青年团","中国")  执行解密出错,为什么汉字密码不能还原呢
2016-09-13 17:50
梦幻倩影
Rank: 5Rank: 5
等 级:职业侠客
威 望:8
帖 子:162
专家分:352
注 册:2016-8-19
得分:0 
本想对所有保存在SQL字段中的字串加密再保存,读回本地后解密再用的
2016-09-13 17:57
不说也罢
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:39
帖 子:1481
专家分:4989
注 册:2007-10-7
得分:7 
一个汉字占用两个字节啊。
应当是这样。没时间测试代码。

===================================================
讨厌C#的行尾的小尾巴;和一对大括号{ }
===================================================
2016-09-14 08:59
shk2016
Rank: 1
等 级:新手上路
帖 子:15
专家分:7
注 册:2016-9-4
得分:7 
写的挺好,佩服!
2016-09-14 22:43
zhangcanwei
Rank: 3Rank: 3
等 级:论坛游侠
威 望:5
帖 子:63
专家分:135
注 册:2010-7-4
得分:0 
回复 楼主 梦幻倩影
汉子应该也可以,只是对应的函数应该是ASCW()和chrW 吧?

我自己推测的
2016-10-22 14:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-468775-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051469 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved