pythonhash加密_Python字符串hashlib加密模块使用案例

主要用于对字符串的加密,最常用的为MD5加密:

import hashlib

def get_md5(data):

obj = hashlib.md5()

obj.update(data.encode('utf-8'))

result = obj.hexdigest()

return result

val = get_md5('123') #这里放入要加密的字符串文字。

print(val)

#简便的写法:

pwd = input('请输入密码:').encode('utf-8')

result = hashlib.md5(pwd).hexdigest()

#加盐写法:

import hashlib

date = 'hahahah'

ojb = hashlib.md5((date+'123123123').encode('utf-8')).hexdigest()

print(ojb)

如果要避免撞库的行为,可以加盐将加密数值改为更加复杂的,这样破译起来更加不容易。

import hashlib

def get_md5(data):

obj = hashlib.md5('abclasjd;flasdkfhowheofwa123113'.encode('utf-8')) #这里加盐

obj.update(data.encode('utf-8'))

result = obj.hexdigest()

return result

val = get_md5('123') #这里放入要加密的字符串文字。

print(val)

案例:

说明:用户输入新建的用户名和密码,以MD5加密的形式存入文件中。再让用户输入用户名密码进行匹配。

#!/usr/bin/env python

# _*_ coding=utf-8 _*_

import hashlib

def get_md5(data):

'''

登录加密,将传入的密码进行加密处理,并返回值。

:param data: 用户的密码

:return: 返回MD5加密后的密码

'''

obj = hashlib.md5('abclasjd;flasdkfhowheofwa123113'.encode('utf-8')) #这里加盐

obj.update(data.encode('utf-8'))

result = obj.hexdigest()

return result

def seve_user(username,password):

'''

将加密后的密码和用户名进行保存,以| 来分割,文件为test.txt

:param username: 需要创建的用户名

:param password: MD5后的密码

:return: 需要更改的地方,return判断是否保存成功。

'''

user_list = [username,get_md5(password)]

lis = '|'.join(user_list)

with open('test.txt',encoding='utf-8',mode='a')as f:

f.write(lis+'\n')

def read_user(username,password):

'''

来判断用户登录所输入的用户名和是否正确。

:param username: 用户输入的用户名

:param password: MD5加密后的密码

:return: 如果匹配返回True

'''

with open('test.txt',mode='r',encoding='utf-8') as f:

for item in f:

infomation = item.strip()

user,pwd = infomation.split('|')

if username == user and password == pwd:

return True

while True:

'''

循环需要创建的用户

'''

user =input('请输入用户名:')

if user.upper() == 'N':

break

pwd = input('请输入密码:')

if len(user) and len(pwd) < 8:

print('用户名密码不符合要求,请重新输入。')

else:

seve_user(user,pwd)

while True:

'''

循环用户登录

'''

user_name = input('请输入用户名:')

password = input('请输入密码:')

start_user = read_user(user_name,get_md5(password))

if start_user:

print('登录成功')

break

else:

print('登录失败')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持聚米学院。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python网络爬虫资源库名_Python网络爬虫

网友NO.524767Python网络爬虫与信息提取(实例讲解)课程体系结构&#xff1a; 1、Requests框架&#xff1a;自动爬取HTML页面与自动网络请求提交 2、robots.txt:网络爬虫排除标准 3、BeautifulSoup框架&#xff1a;解析HTML页面 4、Re框架&#xff1a;正则框架&#xff0c;提取页…

静态成员 java_JAVA中的静态成员

//Java中的静态成员/**静态的成员变量是属于类的&#xff0c;不属于某个对象,是共享的。* 访问时可以用类名.静态属性直接访问&#xff0c;也可以用对象.访问&#xff0c;后者不提倡。* 静态的成员方法只能访问静态的成员*/class Point{static int age ; //所有人共用agestatic…

python骨灰技巧_Pandas技巧,某骨灰级Pythoner经验总结,呕心沥血!

原标题&#xff1a;Pandas技巧&#xff0c;某骨灰级Pythoner经验总结&#xff0c;呕心沥血&#xff01;Python已迅速发展为数据科学家必备的编程语言。python作为一种编程语言提供了更加优秀、宽阔的生体系统与深度的科学计算库。在科学计算库中&#xff0c;Pandas对数据科学最…

java课外兴趣小组管理系统_课外兴趣小组活动方案

课外活动在一定程度上可以开发孩子们的兴趣和天赋&#xff0c;下面是学习啦小编为你整理的课外兴趣小组活动方案&#xff0c;希望对你有用!课外兴趣小组活动方案1一、指导思想&#xff1a;为致力学校内涵式发展&#xff0c;全面推进素质教育&#xff0c;促进学生的全面发展和健…

软件项目周报_有关细节、效率、周报和扯淡

1、有关细节聊聊工作中的细节。有两个视角&#xff0c;「下属」和「上级」。大部分人同时有这两个角色&#xff0c;但屁股转变就有不同看法。对于下属来说&#xff0c;细节是自己的事&#xff0c;上级管得多会很让人烦&#xff0c;而且觉得这个上级很无能&#xff0c;只会盯着细…

java修改配置文件参数_在java类中获取在.properties配置文件中设置的参数

如何获取.properties配置文件中的参数&#xff0c;我在网上查了半天没弄明白&#xff0c;后来在以前的项目中找到了&#xff0c;就写下来&#xff0c;避免遗忘。1.配置文件&#xff1a;message_product.propertiestotal_product2service11,新股发行短信提醒服务,发行的详细信息…

ps发光插件_PS插件自定义区域发光真实辉光插件 Oniric Glow Generator for Photoshop【资源分享1444】...

AE特效PR剪辑C4D影视后期全世界只有不到1%的人关注了你是个很特别的人AE影视后期定期推送「AEPRC4D 影视特效合成 婚庆剪辑调色 电视广告包装 微电影制作 SpeedGrade达芬奇专业调色 摄影等」打造影视后期高端学习平台影视后期 ID&#xff1a;AEPRC4D9【PS插件信息】非常棒的一款…

java按时间范围过滤_在Java中,如何仅选择或过滤在特定时间段内创建的文件

谢谢Ben&#xff0c; Nicolas-R&#xff0c; Basil-Bourque。通过所有输入(使用listFiles&#xff0c;更改过滤器逻辑和使用joda)&#xff0c;这就是我最终制作的&像魅力的工作&#xff1a;File directory new File(fileLoc);FileFilter filter new FileFilter() {public…

python 退出_如果读完这篇文章不能让你入门Python,那我将永久退出编程界

(PS:文末福利赠送 无套路&#xff0c;真实有效&#xff01;)Python是一种动态解释型的编程语言。Python可以在Windows、UNIX、MAC等多种操作系统上使用&#xff0c;也可以在Java、.NET开发平台上使用。【特点】1 Python使用C语言开发&#xff0c;但是Python不再有C语言中的指针…

java 求最长重复子串_给定一个字符串,求出其最长的重复子串。

#include #include #include #include using namespace std;//给定一个字符串,求出其最长的重复子串//方法一string lsubstr_1(const string & str){vector vs;for (int i 0; i < str.size(); i)vs.push_back(str.substr(i));sort(vs.begin(), vs.end());int max 0;in…

unity 检测文本有没有自动换行_python3从零学习-5.1.5、文本自动换行与填充模块textwrap...

TextWrapper 模块提供了一些快捷函数&#xff0c;以及可以完成所有工作的类 TextWrapper 如果你只是要对一两个文本字符串进行自动换行或填充&#xff0c;快捷函数应该就够用了&#xff1b;否则的话&#xff0c;你应该使用 TextWrapper 的实例来提高效率。…

java英文版怎么汉化_请问,java中,将下面的英文名字变为中文 该怎样输出?

如题&#xff0c;下面是代码——————————————————————————————importjava.io.*;publicclassRandomFileDemo{publicstaticvoidmain(String[]args)throwsException{Em...如题&#xff0c;下面是代码————————————————————————…

python建立多台电脑共用的_用virtualenv建立多个Python独立虚拟开发环境

用virtualenv创建虚拟环境&#xff0c;是通过复制全局的python解释器&#xff0c;达到环境的互不影响&#xff1b;新建的虚拟环境会自动复制python解释器环境保存到当前路径之下&#xff1b;3、virtualenv虚拟环境&#xff1a;activate #进入虚拟环境进入虚拟环境&#xff1a;d…

java引入bean代码_通过java代码装配bean

importorg.springframework.beans.factory.annotation.Qualifier;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;/** Spring 的组件扫描默认是不启用的&#xff0c;需要显式配置启用组件扫描去寻找被 Compon…

红黑树和平衡二叉树的区别_一文搞懂红黑树

文章参考 | https://segmentfault.com/a/1190000012728513前言当在10亿数据进行不到30次比较就能查找到目标时&#xff0c;不禁感叹编程之魅力&#xff01;二叉树在了解红黑树之前&#xff0c;先要了解二叉树&#xff0c;又叫二叉查找树、二叉搜索树、二叉排序树。二叉树顾名思…

mysql table keys_MySQL Explain详解

在日常工作中&#xff0c;我们会有时会开慢查询去记录一些执行时间比较久的SQL语句&#xff0c;找出这些SQL语句并不意味着完事了&#xff0c;些时我们常常用到explain这个命令来查看一个这些SQL语句的执行计划&#xff0c;查看该SQL语句有没有使用上了索引&#xff0c;有没有做…

程序员肚子越来越大_肚子越来越大,除了肥胖还可能是疾病信号!腰间搓一搓,排出痰浊,消脂防病~...

☀ 定期推送健康知识&#xff0c;生活窍门&#xff0c;演出资讯&#xff0c;旅游信息&#xff0c;商家优惠等诸多优质内容&#xff0c;接地气、重服务的微信平台&#xff01;关注我们妥妥没错&#xff01;今天我们所说的“要命的肚子”就是一种肥胖&#xff0c;众所周知导致肥胖…

java语言特点解释类_Java语言特点

Java语言特点引导语&#xff1a;Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。那么你知道Java语言的特点吗&#xff0c;以下是百分网小编分享给大家的Java语言特点&#xff0c;欢迎阅读!Java语言的特点1. 简单、面向对象和为人所熟悉java的简单首先体现在精简的…

python内置方法怎么使用_python的常用内置方法

__author__ cocopython内置函数# all() 全为真&#xff0c;才为真print(all([0,-2,3])) # Falseprint(all([1,-2,3])) # True# any() 任意为真&#xff0c;则为真print(any([1,-6,3])) # Trueprint(any([0,,1])) # True# bin() 十进制转二进制print(bin(8)) #0b1000# bool() 判…

高级java技术web组件_(重温)JavaWeb--Servlet技术(二)(JavaWeb 的三大组件之一)...

1.HttpServletRequest 类a)HttpServletRequest 类有什么作用。每次只要有请求进入 Tomcat 服务器&#xff0c;Tomcat 服务器就会把请求过来的 HTTP 协议信息解析好封装到 Request 对象中。 然后传递到 service 方法(doGet 和 doPost)中给我们使用。我们可以通过 HttpServletReq…