柵欄密碼加密與解密以及特徵

原理描述:

所謂柵欄密碼,就是把要加密的明文分成N個一組,然後把每組的第1個字連起來,形成一段無規律的話。 不過柵欄密碼本身有一個潛規則,就是組成柵欄的字母一般不會太多。(一般不超過30個,也就是一、兩句話)

加密特徵:

總體來說字母內容不變,僅是字母順序被“打亂”;加密的時候要選擇組數,所以解密的話只能逆推所有組數,然後選擇一個適合的

腳本實現:

在線網址:https://www.qqxiuzi.cn/bianma/zhalanmima.php
代碼來源於:https://blog.csdn.net/qq_41420747/article/details/88599774

# 柵欄密碼加密解密
# @ChenYe 
def crypto():
    plain = input('輸入明文:')
    n = int(input('輸入每組字數'))
    ans = ''
    for i in range(n):
        for j in range(int(plain.__len__()/n + 0.5)):
            try:
                ans += plain[j*n+i]
            except:
                pass
    return ans
 
def decrypto():
    plain = input('輸入密文:')
    for n in range(2,plain.__len__()-1):
        ans = ''
        for i in range(n):
            for j in range(int(plain.__len__() / n + 0.5)):
                try:
                    ans += plain[j * n + i]
                except:
                    pass
        print(ans)
 
 
if __name__ == '__main__':
    print('柵欄密碼加密/解密.py')
    while(True):
        choice = input('功能選擇:\n1:加密\n2:解密\n')
        # 加密
        if choice == '1':
            print(crypto())
        # 解密
        elif choice == '2':
            decrypto()
        else:
            print('choice error!')

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章