Python3腳本-9鍵26鍵鍵盤密碼加解密python實現


0x01 原理

其實沒什么可說的原理,就是把9鍵的字母對應到26鍵來,先看一下九鍵。

image

可以找到一點規律,如果我想使用‘c’的話,那么就需要按三下‘2’,其他字母同理,那么26鍵呢。

image

很直觀的把數字對應到字母上,那么在26鍵上的字母表就是‘wertyuio’,由26鍵對應到9鍵的密碼就是字母加上次數。


例如:

rrr ttt yyy iii ee www uuu ooo u i yyy

對應一下上面所說的內容,‘ooo’對應字母為鍵盤上的‘o’,所映射的數字是‘9’,三個‘o’表示次數,就是九鍵上按鍵‘9’的‘y’,同理,得到一串字符串。

i love crypto

0x02 代碼

加密、解密功能具備

點擊查看代碼
#python3
num2 = 'abc'
num3 = 'def'
num4 = 'ghi'
num5 = 'jkl'
num6 = 'mno'
num7 = 'pqrs'
num8 = 'tuv'
num9 = 'wxyz'

def decrypt(c):
    #c = 'rr ee ttt ttt yyy'
    #keyboard = 'wertyuio'
    c = c.split(' ')
    m = ''
    for i in c:
        if 'w' in i:
            m += num2[len(i)-1]
        if 'e' in i:
            m += num3[len(i)-1]
        if 'r' in i:
            m += num4[len(i)-1]
        if 't' in i:
            m += num5[len(i)-1]
        if 'y' in i:
            m += num6[len(i)-1]
        if 'u' in i:
            m += num7[len(i)-1]
        if 'i' in i:
            m += num8[len(i)-1]
        if 'o' in i:
            m += num9[len(i)-1]
    return m

def encrypt(m):
    #m = 'hello'
    m = m.replace(' ','')
    keyboard = 'wertyuio'
    c = ''
    for i in m:
        if i in num2:
            c += keyboard[0] * (num2.index(i) + 1)
        if i in num3:
            c += keyboard[1] * (num3.index(i) + 1)
        if i in num4:
            c += keyboard[2] * (num4.index(i) + 1)
        if i in num5:
            c += keyboard[3] * (num5.index(i) + 1)
        if i in num6:
            c += keyboard[4] * (num6.index(i) + 1)
        if i in num7:
            c += keyboard[5] * (num7.index(i) + 1)
        if i in num8:
            c += keyboard[6] * (num8.index(i) + 1)
        if i in num9:
            c += keyboard[7] * (num9.index(i) + 1)
        c += ' '
    return c

print('the cipher is:',encrypt('hello'))
print('the text is:',decrypt('www uuu ooo u i yyy'))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM