zoukankan      html  css  js  c++  java
  • python基础笔记(六):md5加密

    一、md5加密

    md5加密是不可逆的,只能加密,不能解密,加密时只能传二进制类型的(字符串加encode()就能变成byte类型)。

    无论多长的字符串,加密出来都是32位的。

    加密需导入hashlib模块

    import hashlib
    s='123'
    m=hashlib.md5(s.encode())
    result=m.hexdigest()#获取加密后的结果
    print(result)

    封装一个加密函数

    提高安全性的方法:加盐。

    加盐是指在你输入的密码后面再加一个随机字符串。

    def md5(s,salt=''):
        new_s=str(s) + salt
        m = hashlib.md5(new_s.encode())
        return m.hexdigest()

    二、如何对文件加密

    先打开文件,读取文件再加密

    打开文件时用rb表示用二进制打开文件,使用二进制打开,加密时不需要用encode()

    f=open('PyMysql-0.7.5.py3-none.whl','rb') #rb表示用二进制打开,
    jg=f.read()
    m=hashlib.md5(jg) #使用二进制打开,加密时不需要用encode
    result=m.hexdigest()#获取加密后的结果
    print(result)

    三、base64加密

    既能加密又能解密,

    一般传输数据时会用到,加密完都是字母或者数字。

    import base64 #既能加密又能解密
    s='http://www.baidu.com'
    b=base64.b64encode(s.encode()) #加密
    result=b.decode()
    print(result)
    
    b=base64.b64decode('aHR0cDovL3d3dy5iYWlkdS5jb20=') #解密
    print(b.decode())
  • 相关阅读:
    四则运算在线答题dos
    动手动脑11.11
    Java编程中关于异常处理的10个要点
    java第五周课后作业1
    java静态初始化块的执行顺序
    java工程项目作业1
    十一Java作业三
    Linux运维笔记(一)网络基础知识
    分布式笔记(二)一致性协议
    分布式笔记(一)分布式构架概述
  • 原文地址:https://www.cnblogs.com/tata-learning/p/11756235.html
Copyright © 2011-2022 走看看