• pyDes介绍


      使用参数如下(拷贝自上述提供的地址):

    Class initialization
    --------------------
    pyDes.des(key, [mode], [IV], [pad], [padmode])
    pyDes.triple_des(key, [mode], [IV], [pad], [padmode])
    
    key     -> Bytes containing the encryption key. 8 bytes for DES, 16 or 24 bytes
    	   for Triple DES
    mode    -> Optional argument for encryption type, can be either
    	   pyDes.ECB (Electronic Code Book) or pyDes.CBC (Cypher Block Chaining)
    IV      -> Optional Initial Value bytes, must be supplied if using CBC mode.
    	   Length must be 8 bytes.
    pad     -> Optional argument, set the pad character (PAD_NORMAL) to use during
    	   all encrypt/decrpt operations done with this instance.
    padmode -> Optional argument, set the padding mode (PAD_NORMAL or PAD_PKCS5)
    	   to use during all encrypt/decrpt operations done with this instance.
    
    I recommend to use PAD_PKCS5 padding, as then you never need to worry about any
    padding issues, as the padding can be removed unambiguously upon decrypting
    data that was encrypted using PAD_PKCS5 padmode.
    
    Common methods
    --------------
    encrypt(data, [pad], [padmode])
    decrypt(data, [pad], [padmode])
    
    data    -> Bytes to be encrypted/decrypted
    pad     -> Optional argument. Only when using padmode of PAD_NORMAL. For
    	   encryption, adds this characters to the end of the data block when
    	   data is not a multiple of 8 bytes. For decryption, will remove the
    	   trailing characters that match this pad character from the last 8
    	   bytes of the unencrypted data block.
    padmode -> Optional argument, set the padding mode, must be one of PAD_NORMAL
    	   or PAD_PKCS5). Defaults to PAD_NORMAL

    Example
    -------

    pyDES 是一个Python的模块,用来提供 DES、Triple-DES 的加密算法。

    使用示例:

    from pyDes import *
    
    # For Python3, you'll need to use bytes, i.e.:
    #   data = b"Please encrypt my data"
    #   k = des(b"DESCRYPT", CBC, b"", pad=None, padmode=PAD_PKCS5)
    
    data = "Please encrypt my data"
    k = des("DESCRYPT", CBC, "", pad=None, padmode=PAD_PKCS5)
    d = k.encrypt(data)
    print "Encrypted: %r" % d
    print "Decrypted: %r" % k.decrypt(d)
    assert k.decrypt(d, padmode=PAD_PKCS5) == data
    
    import base64
    from pyDes import *
    
    Des_Key = "BHC#@*UM" # Key
    Des_IV = "x22x33x35x81xBCx38x5AxE7" # 自定IV向量
    
    def DesEncrypt(str):
        k = des(Des_Key, CBC, Des_IV, pad=None, padmode=PAD_PKCS5)
    
        EncryptStr = k.encrypt(str)
    
        return base64.b64encode(EncryptStr) #转base64编码返回
    

      

  • 相关阅读:
    Java 利用SWFUpload多文件上传 session 为空失效,不能验证的问题 swfUpload多文件上传
    对ExtJS4应用 性能优化的几点建议
    Extjs4中用combox做下拉带图片的下拉框
    当你的才华还撑不起你的野心时,就应该静下心来学习(转)
    占位符行为 PlaceHolderBehavior 的实现以及使用
    一个简单的TabItem样式。
    WPF实现Twitter按钮效果(转)
    模仿36。杀毒~button(转)
    WPF自适应可关闭的TabControl 类似浏览器的标签页(转)
    WPF绘制简单常用的Path(转)
  • 原文地址:https://www.cnblogs.com/chjbbs/p/6692170.html
Copyright © 2020-2023  润新知