python hashlib密码加密

 
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dss_dssssd/article/details/82805819
  1. hashlib.md5(data)函数中,data参数的类型应该是bytes。
    hash前必须把数据转换成bytes类型hash前必须把数据转换成bytes类型

    from hashlib import md5
    c = md5("helloworld")
    # TypeError: Unicode-objects must be encoded before hashing
    c = md5("helloworld".encode("utf-8"))
  2. 函数说明
    • hashlib.md5(data)
    • digest() :返回加密后字符串的16进制表示,其位数为digest_size
    • digest_size
  3. 程序实例
    import numpy as np
    import hashlib a = hashlib.md5("64".encode("utf-8"))
    print(a)
    print(a.digest())
    print(a.digest_size)
    print(a.digest()[-1])
    b = hashlib.md5("64".encode("utf-8"))
    print(a.digest() == b.digest())

程序输出:

first output:
<md5 HASH object @ 0x000001F196B02418>
b’\xea]/\x1cF\x08#.\x07\xd3\xaa=\x99\x8eQ5’
16
53
True

second output:
<md5 HASH object @ 0x0000016759262418>
b’\xea]/\x1cF\x08#.\x07\xd3\xaa=\x99\x8eQ5’
16
53
True

注意:

  • 两次运行程序输出对象a虽然不同,但digest()输出完全相同
  • a和b的digest()完全相同,
  1. 利用上述两点可以做成简单的密码加密系统,增加密码的安全性

         # table存储着{nickname: md5_password},昵称和密码的md5的加密值
    # 检查账号
    def in_database(name, passw):
    if hashlib.md5(passw.encode("utf-8")).digest() == table[name].digest():
    print('账户在系统中')
    # 进入程序
    else:
    print('账号和密码不一致')
  2. 此程序中利用此haslib库来确定某一项是否要进入测试集中

    hash值的最后一下项小于256*test_ratio,则放入测试集中, date为pandas对象

    	import hashlib
    def test_set_check(identifier, test_ratio, hash):
    return hash(np.int64(identifier)).digest()[-1] < 256 * test_ratio
    def split_train_test_by_id(data, test_ratio, id_column, hash=hashlib.md5):
    ids = data[id_column]
    in_test_set = ids.apply(lambda id_: test_set_check(id_, test_ratio, hash))
    return data.loc[~in_test_set], data.loc[in_test_set]

hashlib加密模块的更多相关文章

  1. python模块知识三 hashlib 加密模块、collections、re模块

    8.hashlib 加密模块 ​ 主要用于加密和校验 常见密文:md5,sha1,sha256,sha512 只要明文相同,密文就相同 只要明文不相同,密文就是不相同的 不能反逆(不能解密)--md5 ...

  2. python 基础(十七)--hashlib加密模块

    hashlib加密模块 两种方式使用 字符串是中文时需要先编码成utf-8 常用加密算法:md5,sha1(已被破解)等... >>> a= hashlib.md5() >&g ...

  3. hashlib加密模块和logging模块,购物车项目

    hashlib加密模块 简介 hashlib模块是一个提供了字符串加密功能的模块,包含MD5和SHA的加密算法.具体的加密支持有: MD5,sha1,sha224,sha256, sha384, sh ...

  4. python: hashlib 加密模块

    加密模块hashlib import hashlib m=hashlib.md5() m.update(b'hello') print(m.hexdigest()) #十六进制加密 m.update( ...

  5. Python(文件、文件夹压缩处理模块,shelve持久化模块,xml处理模块、ConfigParser文档配置模块、hashlib加密模块,subprocess系统交互模块 log模块)

    OS模块 提供对操作系统进行调用的接口 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname")  改变当前脚本工作目 ...

  6. 第三十七节,hashlib加密模块

    在使用hashlib模块时需要先 import hashlib 引入模块 用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA ...

  7. Python全栈之路----常用模块----hashlib加密模块

    加密算法介绍 HASH       Python全栈之路----hash函数 Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列 ...

  8. Day 4-8 hashlib加密模块

    HASH Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值.这种转换是一种压缩映射 ...

  9. hashlib 加密模块使用说明

    import hashlib  #hashilib 模块 m = hashlib.md5() m.update('hello 天王盖地虎'.encode(encoding = 'utf-8)) m.h ...

随机推荐

  1. hibernate课程 初探单表映射3-4 组件属性

    本节内容: 1 简介组件属性 2 demo 1 简介组件属性: <component name = "address" class = "Address" ...

  2. vim常用命令大全

    在命令状态下对当前行用== (连按=两次), 或对多行用n==(n是自然数)表示自动缩进从当前行起的下面n行.你可以试试把代码缩进任意打乱再用n==排版,相当于一般IDE里的code format.使 ...

  3. Python接入支付宝进行PC端支付

    1.  支付宝开放平台登录,使用支付宝账号登录 https://open.alipay.com/platform/home.htm 2.选择沙箱模式 [支付宝提供了测试环境] https://docs ...

  4. unhandled event loop exception解决方案

    今天突然遇到这个问题,打开ADT就报unhandled event loop exception, 原因是ATI显卡的HydraDM.exe HydraDM64.exe进程somehow跟ADT起了冲 ...

  5. 【extjs6学习笔记】1.14 初始: ViewModel

    ViewModel是一个管理特定UI组件数据的类. 可以将其视为特定视图的记录容器. 它支持与UI组件的双向数据绑定,只要用户在视图中更改数据,它具有最新的副本. 与模型不同,它不能包含代理,因此它不 ...

  6. 关于web开发中订单自动超时和自动收货的简单方法(window server)

    最近做一个订单自动超时和自动收货的功能,因为以前是用的mysql 存储过程和定时器来完成,这次的业务逻辑相对复杂用以前的方式就不太合适,本来是准备使用定时执行php脚本来实现的,后来发现业务逻辑中使用 ...

  7. SqlServer Alwayson 搭建排错记录(二)

    下面记录下建立好alwayson可用性组后,向可用性组内添加数据库出现过的问题及解决方法 一.数据库未处于恢复状态 将数据库联接到可用性组的时候报错: 数据库“XXXX”未处于恢复状态,而此状态是镜像 ...

  8. sk-learning(1)

    sk-learning学习笔记(1) 简介 scikit learning 是一个python的机器学习库,内置许多机器学习的算法诸如svm.随机森林.逻辑回归.贝叶斯网络等算法.覆盖了分类.聚类.回 ...

  9. php之基础深入---类与对象篇

    1.类的自动加载: spl_autoload_register()函数可以注册任意数量的自动加载器,当使用尚未被定义的类(class)和接口(interface)时自动去加载,这样可以避免includ ...

  10. BZOJ3932(主席树上二分+差分

    按时间作为主席树的版本,每个版本的主席树都是一个权值线段树. 差分消去时间影响 对于当前时间版本的主席树查询前K大即可. 树上二分时结束后切记判定l==r的状态(易错 l==r叶子节点可能存在多个值( ...