Python-hashlib模块:自定义密码加密规则,密码加密

发布时间:2024年01月05日

hashlib的使用场景

对于hashlib中,加123456加密,拆开加密和整体加密,其结果是一样的。

1、明文加密

对于密码加密,可以使用加盐的操作来提高安全性。

import hashlib
def make_hash_password(the_str:str):
    if not isinstance(the_str,str):
        raise ValueError('传递的值必须是字符串')
    if len(the_str)<3:
        raise ValueError('加密的字符串必须不短于3')
    sha_256 = hashlib.sha256()
    dic = {
        0:'2H&',
        1:'g$9',
        2:'&Z0',
        3:'p@5', #0-3 加3个字符
        4:'Bh6*',
        5:'K3#2w',
        6:'J0$9dW', #4-6 加对应的数值的字符数
        'last':'h9@3K6Z' # 7或以上,加7个字符数
    }
    strs = ''
    for i in range(len(the_str)):
        key = dic.get(i,dic.get('last'))
        sha_256.update(key.encode('utf-8'))
        sha_256.update(the_str[i].encode('utf-8'))
        strs+=key
        strs+=the_str[i]

    return sha_256.hexdigest()

if __name__ == '__main__':
    has_pwd = make_hash_password('123')
    print(has_pwd

2、文件一致性校验

对于大文件,为了确保下载的文件是否正常,常常使用hashlib来做文件一致性校验。在下载后,可以对比hash值是否一致来判断文件是否损坏或被修改。(国外的软件商一般都有这个hash值校验,保证下载的软件是正版没有被改动的)

import hashlib
m = hashlib.md5()
with open(r'G:/logging模块配图.png','rb') as f:
    for line in f:
        m.update(line)
print(m.hexdigest())   

文章来源:https://blog.csdn.net/weixin_46371752/article/details/135401538
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。