QWERTY密碼:加密與解密vbs版
更新時(shí)間:2013年01月14日 00:11:45 作者:
用vbs寫的一個(gè)QWERTY解密與QWERTY加密的代碼,需要的朋友可以參考下
昨天在做Arthur's Online Riddle的時(shí)候有這么一道題目:
If QWERTY = ABCDEF then, OLSQFR = ?
Qwerty 是各國(guó)使用的基于拉丁字母的標(biāo)準(zhǔn)的打字機(jī)和計(jì)算機(jī)鍵盤。QWERTY 是鍵盤第一行的前六個(gè)字母。鍵的安排順序由克里斯多?!な挔査梗–hristopher Sholes)設(shè)計(jì)的。使用QWERTY排列的打字機(jī)在1874年投入批量生產(chǎn)。從此成為應(yīng)用最廣泛的人機(jī)接口,大部分的計(jì)算機(jī)都是使用 Qwerty 鍵盤。
如果 QWERTY 對(duì)應(yīng) ABCDEF 的話,那么其他字母的對(duì)應(yīng)關(guān)系就是分別按照鍵盤順序和字母順序排列。
QWERTYUIOPASDFGHJKLZXCVBNM <=> ABCDEFGHIJKLMNOPQRSTUVWXYZ
一個(gè)一個(gè)查找太麻煩,于是寫了個(gè) QWERTY 解密的 VBS 腳本:
'Author: Demon
'Website: http://demon.tw
'Date: 2012/2/9
Function FromQwerty(str)
Dim d, s, t, i, c, r
s = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
t = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM"
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To 52
d(Mid(t, i, 1)) = Mid(s, i, 1)
Next
For i = 1 To Len(str)
c = Mid(str, i, 1)
If d.Exists(c) Then
r = r & d(c)
Else
r = r & c
End If
Next
FromQwerty = r
End Function
WScript.Echo FromQwerty("OLSQFR")
順便也寫了一個(gè) QWERTY 加密的:
'Author: Demon
'Website: http://demon.tw
'Date: 2012/2/9
Function ToQwerty(str)
Dim d, s, t, i, c, r
s = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
t = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM"
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To 52
d(Mid(s, i, 1)) = Mid(t, i, 1)
Next
For i = 1 To Len(str)
c = Mid(str, i, 1)
If d.Exists(c) Then
r = r & d(c)
Else
r = r & c
End If
Next
ToQwerty = r
End Function
WScript.Echo ToQwerty("I LOVE YOU")
If QWERTY = ABCDEF then, O SGCT NGX = I LOVE YOU
來源:http://demon.tw/programming/qwerty-abcdef.html
If QWERTY = ABCDEF then, OLSQFR = ?
Qwerty 是各國(guó)使用的基于拉丁字母的標(biāo)準(zhǔn)的打字機(jī)和計(jì)算機(jī)鍵盤。QWERTY 是鍵盤第一行的前六個(gè)字母。鍵的安排順序由克里斯多?!な挔査梗–hristopher Sholes)設(shè)計(jì)的。使用QWERTY排列的打字機(jī)在1874年投入批量生產(chǎn)。從此成為應(yīng)用最廣泛的人機(jī)接口,大部分的計(jì)算機(jī)都是使用 Qwerty 鍵盤。
如果 QWERTY 對(duì)應(yīng) ABCDEF 的話,那么其他字母的對(duì)應(yīng)關(guān)系就是分別按照鍵盤順序和字母順序排列。
QWERTYUIOPASDFGHJKLZXCVBNM <=> ABCDEFGHIJKLMNOPQRSTUVWXYZ
一個(gè)一個(gè)查找太麻煩,于是寫了個(gè) QWERTY 解密的 VBS 腳本:
復(fù)制代碼 代碼如下:
'Author: Demon
'Website: http://demon.tw
'Date: 2012/2/9
Function FromQwerty(str)
Dim d, s, t, i, c, r
s = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
t = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM"
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To 52
d(Mid(t, i, 1)) = Mid(s, i, 1)
Next
For i = 1 To Len(str)
c = Mid(str, i, 1)
If d.Exists(c) Then
r = r & d(c)
Else
r = r & c
End If
Next
FromQwerty = r
End Function
WScript.Echo FromQwerty("OLSQFR")
順便也寫了一個(gè) QWERTY 加密的:
復(fù)制代碼 代碼如下:
'Author: Demon
'Website: http://demon.tw
'Date: 2012/2/9
Function ToQwerty(str)
Dim d, s, t, i, c, r
s = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
t = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM"
Set d = CreateObject("Scripting.Dictionary")
For i = 1 To 52
d(Mid(s, i, 1)) = Mid(t, i, 1)
Next
For i = 1 To Len(str)
c = Mid(str, i, 1)
If d.Exists(c) Then
r = r & d(c)
Else
r = r & c
End If
Next
ToQwerty = r
End Function
WScript.Echo ToQwerty("I LOVE YOU")
If QWERTY = ABCDEF then, O SGCT NGX = I LOVE YOU
來源:http://demon.tw/programming/qwerty-abcdef.html
相關(guān)文章
使用 Iisext.vbs 列出Web服務(wù)擴(kuò)展的方法
這篇文章主要介紹了如何使用 iisext.vbs 在本地或遠(yuǎn)程計(jì)算機(jī)上列出 Web 服務(wù)擴(kuò)展,需要的朋友可以參考下2014-07-07用VBS修改遠(yuǎn)程桌面3389端口并添加到Windows防火墻的代碼
用vbs實(shí)現(xiàn)端口就是用vbs修改的注冊(cè)表,主要是vbs的添加到防火墻的代碼,值得大家學(xué)習(xí)2008-06-06charCodeAt與AscW函數(shù)的區(qū)別說明
charCodeAt與AscW函數(shù)的區(qū)別說明...2007-03-03VBS教程:函數(shù)-WeekDayName 函數(shù)
VBS教程:函數(shù)-WeekDayName 函數(shù)...2006-11-11