首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

!用xor加密解密后不能回到源文件的三个有关问题

2012-01-30 
求助!用xor加密解密后不能回到源文件的三个问题!VB初学者请教:问题一、sRichTextBox1.Textt Fori1ToLe

求助!用xor加密解密后不能回到源文件的三个问题!
VB初学者请教:
    问题一、
    s   =   RichTextBox1.Text
    t   =   " "
    For   i   =   1   To   Len(s)
    temp   =   Mid$(s,   i,   1)
    temp   =   Chr(Asc(temp)   Xor   23)
    t   =   t   +   temp
    Next   i
    RichTextBox1.Text   =   t     加密解密后在文件末尾多出了“”两个字符?


    问题二:如果把密匙23攺成一个三位整数的话(如231)会出现“错误7,内存溢出”指针指在“RichTextBox1.Text   =   t”为何?

    问题三:上面的代码如果不用RichTextBox控件,用Text控件的话,
    用         Open   "nero.txt "   For   Input   As   x
                Do   While   Not   EOF(x)    
                    Line   Input   #x,   neirong
                    Text1.Text   =   Text1.Text   &   neirong   &   vbCrLf    
                Loop
                Close   #x
    读到Text中,加密解密后会出现有的字符变成“”为何?  

  望朋友帮忙看看~谢谢

[解决办法]
要存数组里面....
用txtbox显示出来不一定转换的回去...有些字符是不显示的....xor以后可能会出现0的情况,要考虑到....
加密后最好放数组..
[解决办法]
s = RichTextBox1.Text
t = " "
For i = 1 To Len(s)
temp = Mid$(s, i, 1)
temp = Chr(Asc(temp) Xor 23)
t = t + temp
Next i
RichTextBox1.Text = t 加密解密后在文件末尾多出了“”两个字符?
================================================================
检查一下你的最后两个字符temp 是多少? 如果是0然后在XOR 23 ,依旧是23,是一个符号
如果多出来的是一个引号的话,那么有可能 temp XOR 23 = 34 ,请检查

[解决办法]
问题出在汉字上...

[解决办法]
给你个把字符串转化为BYTE数组 然后在把BYTE数组还原字符串的代码
先添加1个 text1控件 先在文本框中输入 字符串 点击窗口执行
Private Sub Form_Click()
Dim str1 As String, k() As Byte, s As String, t1 As Long, t2
str1 = Text1
k = jiami(str1)
For x = 1 To UBound(k)
t1 = k(x) Xor 231
If t1 > 127 Then
t2 = k(x + 1) Xor 231
s = s & Chr(t1 * 256 + t2)
x = x + 1
Else
s = s & Chr(k(x) Xor 231)
End If
Next
Print s
End Sub

Private Function jiami(str1 As String) As Byte()
Dim k() As Byte, ls As Long, x As Long, strfu As String
strfu = StrConv(str1, vbFromUnicode)
ls = LenB(strfu)
Print str1
ReDim k(1 To ls)
For x = 1 To ls
k(x) = AscB(MidB(StrConv(str1, vbFromUnicode), x, 1)) Xor 231
Next
jiami = k
End Function
[解决办法]
对于非可显字符, 把他仍到text里面在从text里面读出来是会丢失信息的。

热点排行