Python 对称加密

转载:https://www.cnblogs.com/pywen/p/15831353.html

from pyDes import des, CBC, PAD_PKCS5
import binascii


def KEY_8(KEY):
    if len(KEY) > 8:
        KEY = KEY[0:8]
    else:
        while len(KEY) < 8:
            KEY = KEY + ' '
    return KEY


def des_encrypt(s, KEY):
    secret_key = KEY_8(KEY)
    iv = secret_key
    k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)
    en = k.encrypt(s, padmode=PAD_PKCS5)
    return binascii.b2a_hex(en).decode()


def des_descrypt(s, KEY):
    secret_key = KEY_8(KEY)
    iv = secret_key
    k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)
    de = k.decrypt(binascii.a2b_hex(s), padmode=PAD_PKCS5)
    return de.decode()


if __name__ == '__main__':
    # strOrigin 秘钥
    KEY = 'mykey'
    strOrigin = "abcdefg-888-dddabcdefg-888-dddabcdefg-888-ddd"

    # 加密
    res = des_encrypt(strOrigin, KEY)
    print(res)

    # 解密
    res2 = des_descrypt(res, KEY)
    print(res2)
posted @ 2022-11-17 16:56  xdd1997  阅读(34)  评论(0编辑  收藏  举报