zoukankan      html  css  js  c++  java
  • Python之加密模块

    hashlib模块

    • 加密方式以md5方式加密举例
    • 是标准模块,直接导入即可
    • 还有其他的加密方式,比如:.sha1()、.sha224()、.sha256()等,加密后的字符串长度更长,安全性更高

    一、加密步骤

    1、字符串先转成二进制类型

    使用.encode()方法转成二进制类型

    import hashlib
    password='123456'
    print(password.encode())#字符串不能直接加密,要先转成二进制类型的才可以加密
    #结果为:b'123456'

    2、使用加密方法

    使用.hexdigest()方法输出加密后内容

    import hashlib
    password='123456'
    m=hashlib.md5(password.encode()) #先转成二进制,再加密
    #print(dir(m)) #由于这个加密模块pycharm提供不了提示方法,所以如果想知道都有什么方法,可以使用内置函数dir(),使用这条语句就能打印出所有方法了
    print(m.hexdigest())

    3、打印加密后的内容

    使用dir()内置函数显示该变量的所有方法

    由于该模块pycharm无法提供提示方法,即输入m“.”不出来方法,所以可以使用内置函数dir(),将所有方法打印出来。

    #print(dir(m)) #由于这个加密模块pycharm提供不了提示方法,所以如果想知道都有什么方法,可以使用内置函数dir(),使用这条语句就能打印出所有方法了
    print(m.hexdigest())

    二、加密相关

    1、检验加密结果

    • 由于md5方式加密完的字符串无论原字符串有多长都是32位,因此可以使用len()方法检验是否加密成功:
    print(len(m.hexdigest())

    2、md5加密之后是不可逆的

    • 网络上可以解密的原理是撞库,即:将常用的密码加密完存在数据库里,然后直接搜库。

    如果输入的加密后密码碰巧数据库里有,就能把对应的加密前密码返回给你,并不是真正的解密。

    3、其他的加密方式

    本文的加密方式以md5方式加密举例,还有其他的加密方式,比如:.sha1()、.sha224()、.sha256()等,加密后的字符串长度更长,安全性更高。

    m=hashlib.sha1(password.encode())#不同的加密方式
    m=hashlib.sha224(password.encode()) #不同的加密方式
    m=hashlib.sha256(password.encode()) #不同的加密方式

    三、加盐

     原理:

    如果要对password=123456加密,这个明文密码太简单,容易撞库解密,所以在123456之后随机加一个字符串,比如abc,这样实际是对123456abc进行加密,如果不知道abc这个字符串,反解的可能性降低,安全性更高。这样的一个字符串就叫做盐。

    四、实际应用

    #实现加密:传入一个值,如果有盐值,则加盐加密;否则直接加密
    def my_md5(s:str,salt=None):
        s=str(s)
        if salt:
            s=s+salt
        m=hashlib.md5(s.encode())
        return m.hexdigest()
        
  • 相关阅读:
    微信 token ticket jsapi_ticket access_token 获取 getAccessToken get_jsapi_ticket方法
    PHP 日志 记录 函数 支持 数组 对象 新浪 sae 环境 去掉 空格 换行 格式化 输出 数组转字符串
    原生 原始 PHP连接MySQL 代码 参考mysqli pdo
    PHP 数字金额转换成中文大写金额的函数 数字转中文
    使用PHPMailer发送带附件并支持HTML内容的邮件
    设置输出编码格式 header 重定向 执行时间 set_time_limit 错误 报告 级别 error_reporting
    html5 bootstrap pannel table 协议 公告 声明 文书 模板
    指向指针的指针
    二级指针
    c语言:当指针成为参数后
  • 原文地址:https://www.cnblogs.com/yanwuliu/p/9724886.html
Copyright © 2011-2022 走看看