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. linux cached过高导致性能变低

    场景: 拿到了客户50个文件,平均每个文件大概40M左右的txt,文件在S3上,需要导入到数据库,40M解析出来大概是80W条左右的数据. 描述: 在刚开始执行导入时,因为数据验证复杂程度不同,每个文 ...

  2. Educational Codeforces Round 51 (Rated for Div. 2)

    做了四个题.. A. Vasya And Password 直接特判即可,,为啥泥萌都说难写,,,, 这个子串实际上是忽悠人的,因为每次改一个字符就可以 我靠我居然被hack了???? %……& ...

  3. echarts折柱混合(图表数据与x轴对应显示)

    一天24个小时,每个小时不一定都有对应的数据,所以后台给出的数据,只有每个时间点对应的数据,比如4点,给的是112,5点的242,其他时间没有,则只显示4点,5点时候的数据,那么现在对应的时间点就是后 ...

  4. new Date(str)返回的时间结果在移动端比PC端快了8小时

    最近开发过程中,后端传过来一个“2018-03-15T17:53:19.6307928”字符串,需要将字符串转换成“2018-03-15  17:53”的格式展示出来.首先我使用了var time=n ...

  5. javascript设计模式之外观模式

    /* * 外观模式 * 外观模式的主要意义在于简化类的接口,使其易于调用 */ // 你常常在不经意中使用了外观模式,尤其类库中更多(处理兼容性问题) var addEvent = function ...

  6. Check Point R80 Security Management

    平台: CentOS 类型: 虚拟机镜像 软件包: Security Management basic software security 服务优惠价: 按服务商许可协议 云服务器费用:查看费用 立即 ...

  7. SqlServer报错:主体“dbo”不存在

    某台SqlServer数据库执行订阅发布的时候,报错: 无法作为数据库主体执行,因为主体“dbo”不存在.无法模拟这种类型的主体,或您没有所需的权限.(源:MSSQLServer,错误号:15517) ...

  8. Get query parameter from url

    URL = { getUrlParams: function ( name, url ) { if (!url) url = window.location.href; name = name.rep ...

  9. VMware下Centos6.4安装

    VMware(Virtual Machine ware)是一个“虚拟PC”软件公司,提供服务器.桌面虚拟化的解决方案. 小伙伴们网上下载VMware11,一路下一步自己安装吧!!! 打开 VMware ...

  10. win10蓝牙添加设备无法连接

    解决方法: 打开运行窗口,输入services.msc. 找到蓝牙支持服务(或者Bluetooth Support Service),右键,属性,启动类型选择手动,启动服务. 还不行的话,此电脑右键, ...