码迷,mamicode.com
首页 > 其他好文 > 详细

hashlib模块

时间:2019-06-26 20:47:25      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:lse   密文   with open   alt   字符串   数据类型   ges   byte   show   

import hashlib
# 能够把一个字符串数据类型的变量,转换成定长的密文的字符串,每一个字符都是十六进制数

# md5 结果为32位字符串,每个字符都是十六进制
# 注意:如果要对多个字符串计算md5,一定要实例化多个MD5对象 md5_obj = hashlib.md5(bytes(‘任意字符串作为盐‘,encoding=‘utf-8‘))
s = alex3714
md5_obj = hashlib.md5(bytes(任意字符串作为盐,encoding=utf-8))

md5_obj.update(bytes(s,encoding=utf-8))
m = md5_obj.hexdigest()
print(m)

# sha1 结果为40位字符串,每个字符都是十六进制.用法跟md5一样 只需要把md5改成sha1
s = alex3714
sha1_obj =hashlib.sha1(bytes(任意字符串作为盐,encoding=utf-8))
sha1_obj.update(bytes(s,encoding=utf-8))
s = sha1_obj.hexdigest()
print(s)
技术图片
# 大文件md5 注意:同一个文件的时候一定要用同一个md5的实例化对象 25cd4f5e603e0da5ff5b12e445503052
def md5_file(file_name,each_size=1024):
    import os
    md5_obj = hashlib.md5()
    file_size = os.path.getsize(file_name)
    with open(file_name,rb) as f:
        count = 0
        while count < file_size:
            if count + each_size < file_size:
                line = f.read(each_size)
                count += each_size
            else:
                line = f.read(file_size-count)
                count = file_size
            md5_obj.update(line)
    m = md5_obj.hexdigest()
    return m
def md5_file_compare(file1,file2,each_size=1024):
    file1_md5 = md5_file(file1,each_size)
    file2_md5 = md5_file(file2,each_size)
    return file1_md5,file2_md5,file1_md5==file2_md5
file1 = 测试用的文件.mp4
file2 = os模块.ipynb
print(md5_file_compare(file1,file2,each_size=1024))
验证文件是否相同

 

hashlib模块

标签:lse   密文   with open   alt   字符串   数据类型   ges   byte   show   

原文地址:https://www.cnblogs.com/wtil/p/11093656.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!