dcsxlh

导航

 

一、模块的介绍
(1)python模块,是一个python文件,以一个.py文件,包含了python对象定义和pyhton语句

(2)python对象定义和python语句
(3)模块让你能够有逻辑地组织你的python代码段。
(4)把相关的代码分配到一个模块里能让你的代码更好用,更易懂
(5)模块能定义函数,类和变量,模块里也能包含可执行的代码

二、模块的导入
注意点:
(1)一个模块只要导入一次,不管你执行多少次import,一次就可以
(2)模块不调用时是置灰状态

1、
格式:import 模块名
使用:模块名.函数名
案例:
import time
print(1)
time.sleep(5) #休眠
print(2)

 


2、from 包名.模块名 import * (*表示所有的函数)

案例:

from  time import  *
print(1)
sleep(5)
print(2)

 案例2:

from bao.aa import *
案例:
aa模块
def gs():
print(1)
def gs1():
print(2)
def gs2():
print(3)

 

bb模块:
from bao.aa import *
gs()
gs1()
gs2()

 

3、from 包名.模块名 import 函数名 (*表示所有的函数)

案例1:

from  time import  sleep
print(1)
sleep(5)
print(2)

 

案例2:
aa文件:
def gs():
print(1)
def gs1():
print(2)
def gs2():
print(3)

 

bb文件:
from bao.aa import gs(固定函数)
gs()

 

4、
通过取别名来调用函数
格式:from 模块名 import 函数名 as 别名

  案例1:

from  time import  sleep as f
print(1)
f(5)
print(2)

 

案例2:
aa模板
def gs():
print(1)
def gs1():
print(2)

 

def gs2():

print(3)bb模块:

from bao.aa import gs as b
b()

   二、模块讲解

(一)time模块

import time  或 from time import *

print(time.time()) #1651200498.799537  ##1970年到现在经过的秒数
print(time.ctime()) #固定格式的当前时间
time.sleep(3)) # 休眠,也是强制等待  (重要)
print(time.asctime()) #转化为asc码显示当前时间
print(time.strftime(“%H-%M-%S %y-%m-%d”)) #时间戳:按照格式输出时间内容:(重要)

(二)、random模块
生成随机浮点数,帧数,字符串,甚至帮助你随机选择列表中的一个元素,打乱一组数据等;
from random import *
print(random()) #生成0-1之间的浮点数,但是能取到0,不能取到1
print(randint(1,100)) #随机生成指定范围内整数,包括开始值和结束值
print(randrange(1,100,2)) # 生成指定范围内的奇数
print(randrange(0,100,2)) #生成指定范围内的偶数
f=[1,2,3,6,7,2]
print(sample(f,3)) #生成从一个固定集合中选n个数随机
print(choice(f)) #随机生成一个字符
shuffle(f)  #洗牌
print(list(f))

(三)string 模块

print(string.digits) #0123456789 所有的数据
print(string.hexdigits) #0123456789abcdefABCDEF
print(string.ascii_uppercase) #ABCDEFGHIJKLMNOPQRSTUVWXYZ #所有的小写
print(string.ascii_lowercase) #abcdefghijklmnopqrstuvwxyz #所有小写

print(string.ascii_letters) #abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ #所有的大小写print(string.ascii_letters+string.digits) #abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 #所有大小写,字母和数字

(四)加密模块

加密模块:
import hashlib

base64
MD5

http://encode.chahuo.com/  在线加解密

一、加密算法
md5、rsa、AES ,DES.BASE
DES 以64位为分组队数据加密,加密和解密是同一算法‘;
rsa加密 算法:是一种非对称加密算法(在公开秘钥加密和电子商业中rsa被广泛使用)
AES rijndael 加密法对称加密中最流行的算法之一(AES为分组密码)

 

1、base64 加密,解密

(1)加密

import  base64
dx=base64.b64encode(b"123456")
print(dx) #b'MTIzNDU2'

 (2)解密

import  base64
dx=base64.b64decode(b'MTIzNDU2')
print(dx)

 

 b 时二进制的方式

(3)md5

MD5加密

(1)md5 是一种算法,可以将一个字符串或文件,md5后,就可以生成一个固定为128bit的串,这个串,基本上唯一;
(2)python2中有md5
(3)python3将MD5 归纳到hash 模块,译作:‘散列’,直译为‘哈希’。
(4)md5 可以把任意长度的输入,通过hash算法,变换成固定长度的输出,该输出就是散列值,也称摘要值,该算法就是哈希函数,也称摘要函数。

(5)md5 是最常见的摘要算法,速度快,生成结果是固定16字节,通常用32位的16进制字符串表示。
(5)hash模块中包含MD5、sha1 ,sha256 ,sha512,等
(6)摘要;hash.digest() 返回摘要,作为二进制数据字符串值;
hash.hexdigeest 返回摘要,作为16进制数据字符串值
(7)案例1:
import hashlib
m=hashlib.md5() # 创建MD5对象
m.update(b"123456")
print(m.hexdigest()) #e10adc3949ba59abbe56e057f20f883e

 

十六进制转换输出
备注:
1、python中md5要加上b,python2不需要
2、md5 不能解密,但是加密是固定,关系是一一对应,可以被对撞。

案例:

import  hashlib
dx=hashlib.sha3_256()
dx.update(b"123456")
print(dx.hexdigest()) #d7190eb194ff9494625514b6d178c87f99c5973e28c398969d2233f29

面试题:
(1)如果在工作中有很多数据,如果数据被改动,或传递别修改,看不出?
a、通过加密检查数据
通过加密对数据进行加密处理,生成加密字符,如果有改动,字符就不相同
b、比对数据不一样,如果加密的字符不相同,说明两个数据不一致

 

作业:
通过md5加密算法把随机生成的6位数验证码进行加密返回16进制的字符串

posted on 2025-05-19 11:58  多测师_肖sir  阅读(47)  评论(0)    收藏  举报