zoukankan      html  css  js  c++  java
  • python进行des加密解密,而且可以与JAVA进行互相加密解密

    import binascii
    from pyDes import des, CBC, PAD_PKCS5
    import uuid
    import time

    # pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyDes
    secret_key = '19771011'


    # http://blog.csdn.net/lihao21/article/details/78557461?locationNum=11&fps=1
    def des_encrypt(s):
    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)


    def des_descrypt(s):
    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


    def get_mac_address():
    mac = uuid.UUID(int=uuid.getnode()).hex[-12:]
    return ":".join([mac[e:e + 2] for e in range(0, 11, 2)]).upper()


    # 获取时间戳
    def get_time_stamp():
    ct = time.time()
    local_time = time.localtime(ct)
    data_head = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
    data_secs = (ct - int(ct)) * 1000
    time_stamp = "%s.%03d" % (data_head, data_secs)
    return time_stamp


    def trydecode(token):
    try:
    str_de = des_descrypt(token)
    return True, str(str_de, encoding="utf-8")
    except:
    return False, '无法解密'


    # 任务编号
    guid = uuid.uuid3(uuid.NAMESPACE_DNS, 'dsideal')
    # 时间戳
    timespan = get_time_stamp().replace('-', '').replace(':', '').replace(' ', '').replace('.', '')
    str_en = des_encrypt(str(guid).upper() + ' ' + get_mac_address() + ' ' + timespan + ' ')
    encodestr = str(str_en, encoding="utf-8")
    print('Token:' + encodestr)

    # 尝试解密
    b, m = trydecode(encodestr)
    if b:
    print(m)
    else:
    print('无法解密!')
  • 相关阅读:
    samdump2获取虚拟机密码
    PHP执行cmd方法若干
    Aircrack-ng学习笔记之无AP破解WiFi密码
    Python基础:extend与append的区别
    Python基础:dictionary
    UVALive 3177 长城守卫
    UVALive 3902 网络
    UVA 11520 填充正方形
    UVALive 3635 分派
    UVALive 3971 组装电脑
  • 原文地址:https://www.cnblogs.com/littlehb/p/8082483.html
Copyright © 2011-2022 走看看