日期相关的模块
- time:
常见方法: ‘altzone’, ‘asctime’, ‘ctime’, ‘daylight’, ‘get_clock_info’,
‘gmtime’, ‘localtime’, ‘mktime’, ‘monotonic’, ‘monotonic_ns’,
‘perf_counter’, ‘perf_counter_ns’, ‘process_time’, ‘process_time_ns’,
‘sleep’, ‘strftime’, ‘strptime’, ‘struct_time’, ‘thread_time’,
‘thread_time_ns’, ‘time’, ‘time_ns’, ‘timezone’, ‘tzname’
-
datetime:
python后期提供,补充time模块
主要特点,就是将时间和日期分离处理time模块和datetime模块是可以相互转换使用的,可以通过格式化时间的两个函数实现互转
-
calendar:
打印需要的年份的日历
加密模块学习:
加密
凯撒加密:就是简单的挪位加密
字符串对象提供了对应操作:
s.translate(s.maketrans({自定义参照表}))
加密的分类:
|-- 不可逆加密 hash加密
主要用于信息摘要,md5、sha1、sha256
|-- 可逆加密
|-- 对称加密
加密和解密使用同一个秘钥
des
|-- 不对称加密
加密和解密使用的不同的秘钥(使用的一对秘钥(公钥、私钥))
RSA算法
加密的相关模块
-
hashlib
主要提供hash加密相关的加密算法
md5、sha256……文件对比、数字摘要等等功能
如果要进行密码加密等操作,建议添加复杂的盐值混淆
特别推荐使用hmac完成密码加密等操作 -
hmac:
hash加密相关的加密算法,同时也配合使用对称加密
import hashlib
users = []
user_passwd = []##数据库中获取到的是加密过的信息,不知道加密过程,也无法获取真实密码。
def print_print():
print("----------------------------------")
def user_logon(user,passwd):
if users.count(user) != 0:
print("---------该用户名已存在!")
else:
users.append(user)##用户列表
md5 =hashlib.md5(passwd.encode("utf-8"))##进行mad5加密
md5.update("hjs".encode("utf-8"))##更新密码加入特定的加密内容“hjs”
passwd = md5.hexdigest()##将其转换为16进制
dir = {user:passwd}
user_passwd.append(dir)
print(dir)
def user_login(user,passwd):
if users.count(user) == 0:
print("用户不存在")
else:
md5 =hashlib.md5(passwd.encode("utf-8"))
md5.update("hjs".encode("utf-8"))
passwd = md5.hexdigest()
dir = {user:passwd}
if user_passwd.count(dir) == 0:
print("密码错误!")
else:
print("登录成功!")