QWERTY密碼:加密與解密vbs版

字號(hào):


    用vbs寫的一個(gè)QWERTY解密與QWERTY加密的代碼,需要的朋友可以參考下
    昨天在做Arthur's Online Riddle的時(shí)候有這么一道題目:
    If QWERTY = ABCDEF then, OLSQFR = ?
    Qwerty 是各國使用的基于拉丁字母的標(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