zoukankan      html  css  js  c++  java
  • python使用DES加密解密

    des对称加密:是一种比较传统的加密方式,其加密运算、解密运算使用的是同样的密钥,信息的发送者和信息的接收者在进行信息的传输与处理时,必须共同持有该密码(称为对称密码)

    附:http://tool.chacuo.net/cryptdes,这个是在线加解密工具

    前提:需要安装pyDes库

    from pyDes import des, CBC, PAD_PKCS5
    import binascii
    
    # 秘钥
    KEY = 'keiHG$93'
    
    
    def des_encrypt(s):
        """
        DES 加密
        :param s: 原始字符串
        :return: 加密后字符串,16进制
        """
        secret_key = KEY  # 密码
        iv = secret_key  # 偏移
        # secret_key:加密密钥,CBC:加密模式,iv:偏移, padmode:填充
        des_obj = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)
        # 返回为字节
        secret_bytes = des_obj.encrypt(s, padmode=PAD_PKCS5)
        # 返回为16进制
        return binascii.b2a_hex(secret_bytes)
    
    
    def des_descrypt(s):
        """
        DES 解密
        :param s: 加密后的字符串,16进制
        :return:  解密后的字符串
        """
        secret_key = KEY
        iv = secret_key
        des_obj = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)
        decrypt_str = des_obj.decrypt(binascii.a2b_hex(s), padmode=PAD_PKCS5)
        return decrypt_str

    调用:

    print(des_encrypt("ceshi123"))
    输出:b'9dd9133d27c1b071f4dc0c13479b3882'
    print(des_descrypt("9dd9133d27c1b071f4dc0c13479b3882"))
    输出:b'ceshi123'

    加密:

     解密:

     可以看到代码和工具的结果都是一样

  • 相关阅读:
    数据库语句
    Java类和数据结构中常用的方法
    java知识点
    JVM相关知识
    Java实现三种常用的查找算法(顺序查查找,折半查找,二叉排序树查找)
    SharedPreference作用及数据操作模式
    Java实现7种常见的排序算法
    钱多多软件制作03
    钱多多软件制作02
    钱多多软件制作01
  • 原文地址:https://www.cnblogs.com/gcgc/p/14041986.html
Copyright © 2011-2022 走看看