1. 程式人生 > 其它 >python加密演算法之異或 加密解密

python加密演算法之異或 加密解密

技術標籤:pythonpython

此為學習python異或加密的記錄總結

1、需要了解python中ord()與chr()的使用,ord()中引數為字串,chr()中引數為數字

2、需要了解^異或使用

3、不多介紹,直接上程式碼:

可以根據輸入的明文、祕鑰加密,並且可以據輸入的密文、祕鑰解密。

# python 異或加密演算法, 使用^來計算明文與密文的解譯
import random

input_str = input('請輸入1、進行加密,2、進行解密:')


# 加密
def encode(str_1, keys):
    # 祕鑰的種子, random.seed() 預設引數為系統時間
    random.seed(keys)
    str_2 = ''
    for item in str_1:
        str_2 += str(ord(item) ^ random.randint(0, 255)) + ','
    # 去除收尾,逗號
    str_2 = str_2.strip(',')
    print(str_2)


# 解密
def decode(str_3, keys):
    # 祕鑰的種子, random.seed() 預設引數為系統時間
    random.seed(keys)
    str_3 = str_3.split(',')
    str_4 = ''
    for item in str_3:
        item = int(item)
        str_4 += chr(item ^ random.randint(0, 255))
    print(str_4)


if input_str == '1':
    print('您選擇加密!')
    str_1 = input('請輸入準備加密的明文:')
    keys = input('請輸入祕鑰:')
    encode(str_1, keys)
elif input_str == '2':
    print('您選擇解密:')
    str_3 = input('請輸入準備解密的密文:')
    keys = input('請輸入祕鑰:')
    decode(str_3, keys)
else:
    print('請按照規則進行輸入!')