zoukankan      html  css  js  c++  java
  • 模块 hashlib模块

    hashlib模块  提供摘要算法

    主要做对比,比较两段代码是否完全一致

    不管算法多么不同,摘要功能始终不变,

    对同一个字符串进项同一算法摘要得到的值始终不变

    MD5值的生成

    import hashlib
    sha1 = hashlib.md5()  #一定加括号
    sha1.update(bytes('alex3421',encoding='utf-8'))
    print(sha.hexdigest())  

    sha 算法随着算法复杂程度的增加,时间空间都会提高

    密码的密文存储

    文件一致性验证(不需要加盐,别人不知道你的盐是什么)

    1、在下载时,检查我们下载的文件和远程服务器上的文件是否一致

    2、两台机器上的两个文件你想检查这两个文件是否相等

    import hashlib
    usr1 = input('请输入注册用户名>>>')
    psd1 = input('密码>>>')
    with open('file') as f3:
        for  i in  f3:
            use2,psd2=i.split('|')
            if use2 == usr1:
                print('已存在用户名')
        else:
            with open('file','a') as f1:
                md5 = hashlib.md5(bytes(usr1[:2],encoding='utf-8')+bytes('Ebola',encoding='utf-8'))
                md5.update(bytes(psd1,encoding='utf-8'))
                md5_psd1 = md5.hexdigest()
                f1.write('{}|{}
    '.format(usr1,md5_psd1))
    usr = input('请输入用户名>>>')
    psd = input('密码>>>')
    with open('file') as f:
        for  i in f:
            username,passwd = i.split('|')
            passwd = passwd.strip()
            md5 = hashlib.md5(bytes(usr[:2],encoding='utf-8')+bytes('Ebola',encoding='utf-8'))  #动态加盐
            md5.update(bytes(psd,encoding='utf-8'))
            md5_psd = md5.hexdigest()
            if usr == username and md5_psd == passwd:
                print('登陆成功')
  • 相关阅读:
    第三次作业
    利用LINQ to SQL 增删改查本地数据库
    【转】C#,回车,换行
    【转】C#3.0编码习惯与命名规则
    Connect to the DSP on C6A8168/DM8168/DM8148 using CCS
    【转】OpenCV 移植学习EMCV
    目标跟踪小结
    利用TortoiseSVN获取最新版本的OpenCV源码
    转图像灰度化方法总结及其VC实现
    OpenCV读取视频的格式注意点
  • 原文地址:https://www.cnblogs.com/Ebola-/p/8336943.html
Copyright © 2011-2022 走看看