瑞星卡卡安全论坛

首页 » 技术交流区 » 系统软件 » 用vb的来帮一下忙!(有关写密文的).(2)
carye - 2005-7-10 9:40:00
上次发了一个帖子(http://forum.ikaka.com/topic.asp?board=55&artid=6569515),托逍遥大哥的福解决了,但现在有个新问题.
因为换算的数字还要经过计算,但我在处理时,一遇到标点符号就出错.不知哪位大哥给个方法.
注:
将计算出来的数字重新转为英文时,虽然每次的计算方法不同,但我可以保证计算出的数字在1到26之间.标点,空格不需转换.

哪位高手给个答案,谢谢!
carye - 2005-7-11 17:08:00
别沉了!这里的人不喜欢帮忙吗?

附件: 3384502005711170842.gif
怪物125号 - 2005-7-13 20:23:00
对不起,我测试过上次那代码,标点符号并没有出问题。

但对你这种密码可靠性怀疑:如密文111 , 到底原文是aaa,还是ak ?应该对小于10的数加个0才对
『逍遥』 - 2005-7-13 20:29:00
这样你要改一下,将小于10的数字前加个0。不然就会出现上楼所说的情况。

反过来的问题其它在你上面一贴中已经有答案了。你自己看一下吧。

carye - 2005-7-14 0:01:00
不好意思,可能我的意思大家没理解.我的思路是:
首先读入信息,例如输入"abc."(不带引号),将其转换为数字"123."然后对数字单独进行计算,首先是1,例如将1转为了5,再对2进行转换4,3变为6.即"123."变成了"546."(标点不算)再将换好得数字重新变为英文"edf.".
由上,"abc."变成了"edf."


对了,『逍遥』大哥,可以拜你为师么???
怪物125号 - 2005-7-14 9:55:00
我看你这种方案的Bug实在多,如果原文中也有数字,那又要出错了。

另外你说“abc”变成了“edf”,然后又怎么样呢,这点应该简单。最后还是要还原吧。

要做到你说的转换,只需改掉程序中红色的一行即可。
Private Sub Command1_Click()
    Text2.Text = ""
    A = (Len(Text1.Text))
   
    For B = 1 To A Step 1
        C = UCase(Mid(Text1.Text, B, 1))
       
        D = Asc(C) - 64
       
        If (D <= 26 And D >= 1) Then
            E = D
        Else
            If D = (-32) Then
                E = " "
            Else
                E = C
            End If
        End If
        Text2.Text = Text2.Text & E
    Next B
End Sub
carye - 2005-7-14 18:26:00
怎样把对应的数字转为字母啊???高手!告诉我啊!
carye - 2005-7-16 12:10:00
还没给答案就沉了。来人啊!!!!!
怪物125号 - 2005-7-16 21:36:00
咳,我觉得如果就这样就给出答案,对你VB入门一点好处都没有。
carye - 2005-7-17 8:44:00
引用:
【怪物125号的贴子】咳,我觉得如果就这样就给出答案,对你VB入门一点好处都没有。
...........................

求你了,大哥!,给个答案吧.
『逍遥』 - 2005-7-18 9:40:00
引用:
【carye的贴子】不好意思,可能我的意思大家没理解.我的思路是:
首先读入信息,例如输入"abc."(不带引号),将其转换为数字"123."然后对数字单独进行计算,首先是1,例如将1转为了5,再对2进行转换4,3变为6.即"123."变成了"546."(标点不算)再将换好得数字重新变为英文"edf.".
由上,"abc."变成了"edf."


对了,『逍遥』大哥,可以拜你为师么???

...........................


如果你要把ABC就成EDF就没有必要先将ABC变为123。直接可以将ABC变为EDF就可以了。不过这样的加密不怎么安全。会懂的人一看就知道了。我等一下把源码发上来。
『逍遥』 - 2005-7-18 11:29:00
Private Sub Command1_Click()
Text2.Text = ""
A = (Len(Text1.Text))

For B = 1 To A Step 1
C = UCase(Mid(Text1.Text, B, 1))

D = Asc(C) + 3

E = Chr(D)

Text2.Text = Text2.Text & E

Next B
End Sub


如果想改成其它字母的话也可以。将(D = Asc(C) + 3)中的“+3”改成“+6”或者“-10”都可以。这样原来的字母就变成其它的了。包括标点在内。如果不想包括标点在内的话可以用个IF语句来过滤一下就可以了。具体要怎么过滤这就要你自己想了。如果都问人的话你的VB提高不了。

对了,我的QQ是5408627。
carye - 2005-7-18 11:47:00
爱死逍遥师傅了!
fb626 - 2005-7-18 16:48:00
你们都是用什么语言编的啊?
TheDarkGhost - 2005-8-1 22:34:00
vb乎
1
查看完整版本: 用vb的来帮一下忙!(有关写密文的).(2)