Python_49模块及模块导入_OS模块_SYS模块_hashlib模块_用户登录密码加密验证的例子

一个py文件就可以是一个模块

Python导入模块名的查找:先去该文件目录下找   Pycharm 里面查找    安装包查找    

import 自写模块的时候需要把模块的全部地址尽量写出写全

例如:模块文件目录 C:\user\python\test\123\rew.py

当前文件位置:C:\\user\python\test\eew.py

当在eew.py下引用rew.py文件时 就要用到 import 123.rew    或者  from 123 import rew 

sys.path就是显示的是这个搜索模块的路径搜查步骤

 sys.patth是一个路径列表。

通过 sys.path.append() 可以添加新的地址搜索范围

 

 

与解释器相关的东西都在SYS这个模块里

 

与系统相关的东西都放在OS模块中

ml=os.getcwd()#获取当前工作目录
print (ml)
os.chdir("dirname")#改变当前目录,相当于shell下的cd
os.curdir()#返回当前目录 相当于 ‘.’
os.pardir()#获取当前目录的父目录 相当于 ‘..’
os.makedirs('dir1/dir2')#可生成多层递归目录
os.removedirs('dir1')#若果目录为空删除之 跳到上一层目录 递归往复如此操作
os.mkdir('dir1')#生成单级目录
os.rmdir('dir1')#删除单级空目录,若目录不为空则无法删除,并报错
os.listdir('dir1')#列出指定目录下的所有文件,包括隐藏文件,以列表形式打印
os.remove()#删除文件
os.rename('oldname','new_name')#重命名文件或者目录
os.stat('path/filename')#获取文件信息或者目录信息
os.sep()#操作系统特定的路径分隔符 win下为 ‘\\’ linux下为‘/’ 只是一个字符
os.linesep() #当前平台使用的终止符 只是一个字符
os.name() #显示当前使用的平台 win --'nt' Linux--‘posix’
os.system('bash command')#运行shell命令,直接显示
os.environ() #获取系统的环境变量
os.path.abspath(path)#返回path规范化的绝对路径
os.path.split(path)#将path分割成目录和文件名二元组返回
os.path.dirname(path)#返回path的目录,其实就是os.path.split(path)的第一个元素
os.path.exists(path)#判断这个路径是不是存在 True
os.path.isabs(path)#如果path是绝对路径,则返回True
os.path.isfile(path)#如果该路径指的是一个文件,则返回True
os.path.basename(path)#返回path的最后文件名
os.path.isdir(path)#如果path是一个存在的目录,则返回True
os.path.join(path1[,path2[,...]])#将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path)#返回path所指向文件的最后存取时间
os.path.getmtime(path)#返回path所指向文件的最后修改时间

 

hashlib模块

用于加密的相关操作,代替了MD5模块和sha模块,主要是提供SHA1,SHA224,SHA256,SHA384,MD5算法

import hashlib
hash=hashlib.md5()
hash.update(bytes('123',encoding='utf-8'))
print(hash.hexdigest())
#MD5加密比较难解 可以撞库进行比对解压
输出————————————————————————————————————————————————————
202cb962ac59075b964b07152d234b70
import hashlib
hash=hashlib.sha1()
hash.update(bytes('123',encoding='utf-8'))
print(hash.hexdigest())
输出————————————————————————————————————————————————————————————————
40bd001563085fc35165329ea1ff5c5ecbdbbeef


import hashlib
hash=hashlib.md5(bytes('34567889123',encoding='utf-8'))
hash.update(bytes('123',encoding='utf-8'))
print(hash.hexdigest())
#MD5加密比较难解 可以撞库进行比对解压 这样可以防止撞库 自行自定义添加一个字符串来混淆加密结果
输出————————————————————————————————————————————————————————————————————————————————————————————————
19944fda74f3450a0936153ac729efea

hmac模块也是加密模块

 

用户登录密码加密验证的例子MD5加密

import hashlib
def jiami(mingwen):
hash=hashlib.md5(bytes('34567889123',encoding='utf-8'))
hash.update(bytes(mingwen,encoding='utf-8'))
return hash.hexdigest()
def yijingxieru(username,passwd):
with open('G:\\aliumang.txt','a') as f:
if f.write('\n'+username+'|'+jiami(passwd)):
return True
else:
return False
def yanzheng(username,passwd):
i=False
with open('G:\\aliumang.txt','r+') as f:
for l in f:
zh=l.strip().split('|')
if (zh[0]==username and zh[1]==jiami(passwd)):
i=True
return i
def zhengmian():
j=0
while j<10:
j=j+1
i=input('1;注册 2:登录')
if i=='1':
username=input('请输入用户名:')
passwd=input('请输入密码:')
if yijingxieru(username,passwd):
print ('注册成功')
else:
print('注册失败')
else :
if i=='2':
username=input('请输入用户名:')
passwd=input('请输入密码:')
if yanzheng(username,passwd):
print ('登录成功')
else:
print ('登录失败')
else:
print ('请输入正确的数字')
zhengmian()


posted on 2018-04-02 12:42  JuGooLar  阅读(198)  评论(0编辑  收藏  举报

导航