zoukankan      html  css  js  c++  java
  • python笔记66

    前言

    使用python代码实现 DES/CBC/pkcs5padding加解密

    DES加密模式

    加密模式:DES/CBC/pkcs5padding
    加解密在线工具:http://tool.chacuo.net/cryptdes
    需知道加密的密码(8位):yoyo1234
    IV偏移量(8位):12345678
    输出编码格式(16进制):hex

    在线加密结果
    输入:yoyo
    得到16进制:d50d7e20173f0e27

    pyDes库

    先安装pyDes库Version: 2.0.1

    > pip install pyDes
    

    python代码实现DES加解密

    from pyDes import des, CBC, PAD_PKCS5
    import binascii
    """
    加密模式:DES/CBC/pkcs5padding
    需pip先安装依赖包
    > pip install pyDes
    """
    
    
    def des_encrypt(s, key='yoyo1234'):
        """
        DES 加密
        :param s: 原始字符串
        :param key: 加密密钥8位
        :return: 加密后字符串,16进制
        """
        secret_key = key
        iv = '12345678'      # 偏移量8位
        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, key='yoyo1234'):
        """
        DES 解密
        :param s: 加密后的字符串,16进制
        :return:  解密后的字符串
        """
        secret_key = key
        iv = '12345678'      # 偏移量8位
        k = des(secret_key, CBC, iv, pad=None, padmode=PAD_PKCS5)
        de = k.decrypt(binascii.a2b_hex(s), padmode=PAD_PKCS5)
        return de
    
    if __name__ == '__main__':
        s = 'yoyo'
        encry_s = des_encrypt(s)
        print(encry_s)
        descry_s = des_descrypt(encry_s)
        print(descry_s)
    
    

    运行结果

    b'd50d7e20173f0e27'
    b'yoyo'
    

    加解密AES/CBC/pkcs7padding加解密参考https://www.cnblogs.com/yoyoketang/p/11717282.html

  • 相关阅读:
    莫队
    NOIP2010_T4_引水入城 bfs+贪心
    拉灯游戏 搜索
    种花小游戏 随机化搜索
    [usaco2003feb]impster
    P1265 公路修建 (prim)
    P3378 【模板】堆
    并查集 模板
    P2661 信息传递
    P1828 香甜的黄油 Sweet Butter (spfa)
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/15358052.html
Copyright © 2011-2022 走看看