• python-加密


    python中hashlib提供了常见的摘要算法,如MD5,SHA1等等

    什么是摘要算法呢?摘要算法又称哈希算法算列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示),主要用于防篡改,可以不送传明文

    md5是一种不可逆的加密算法,目前也是最牢靠的算法之一,它对任何字符串都可以成一段唯一的固定长度的代码

    sha1是由美国标准技术局发布的,也是目前最先进的加密技术,它是基于md5改进而来

    des是对称加密算法

      安装pyDES.py到python安装目录下的Lib中

    cmd命令行,进入到目录,招到setup.py文件,执行命令:python setup.py install

    cmd ->
    d: ->
    cd C:Python33LibpyDes-2.0.1
    python setup.py install

    三种加密方式

    import hashlib #MD5和sha1算法
    import base64
    from pyDes import * #把pydes压缩包里的pyDes.py拷贝到python安装目录下的Lib中
    
    def md5_encode(data):
        #调用md5算法,用一个变量接收
        m = hashlib.md5()
        #调用update对传来的data进行数据加密,encode utf-8的编码后才能用update
        m.update(data.encode('utf-8'))
        return m.hexdigest() #经过特殊处理之后以字符串形式返回
    
    def sha1_encode(data):
        sha1 = hashlib.sha1()
        sha1.update(data.encode('utf-8'))
        return sha1.hexdigest()
    
    #DES加密
    '''
    pyDes.des(key,[mode],[IV],[pad],[padmode])
    参数的意思分别如下:
    key 加密密钥.长度为8位,必选
    mode 加密方式.ECB(默认),CBC(安全性好于前者)
    IV  初始字节数(长度为8位),如果你选择的加密方式为CBC就必须有这个参数,否则可以没有
    pad 加密时,将该字符添加到数据块的结尾;解密时,将删除从最后一个的往前8位
    padmode PAD_NORMALPAD_PKCS5,当选择前者时必须设置pad
    '''
    
    def des_encode(data):
        #设置加密的规范
        k = des("xqtest66",padmode = PAD_PKCS5)
        #k = des("xqtest66",CBC,"goodluck",pad = "hahahehe",padmode = PAD_NORMAL)
        
        
        #encrypt来加密我的数据,然后进行base64编码
        encodeStr = base64.b64encode(k.encrypt(data))
        return encodeStr
    
    data = "i love pythoon"
    
    result1 = md5_encode(data)
    print("md5加密:",result1)
    
    result2 = sha1_encode(data)
    print("sha1加密:",result2)
    
    result3 = des_encode(data)
    print("des加密:",result3)

    结果:

    md5加密: a6f3ba84c70f394fc4e7d87bc467cd4e
    sha1加密: 4b714ecbad5e289593aa21412da0703e91d011e0
    des加密: b'oa/KM3bfrxyOOz7m9DU2rA=='

  • 相关阅读:
    js添加和删除class
    GIT回滚master分支到指定tag版本
    table添加正确的样式
    iframe父页面与子页面赋值
    关于日期转换
    vue-cli脚手架安装
    npm手册
    linear-gradient常用实现效果
    【转载】说说JSON和JSONP,也许你会豁然开朗,含jQuery用例
    雷霄骅走了
  • 原文地址:https://www.cnblogs.com/R-bear/p/7046222.html
Copyright © 2020-2023  润新知