简单加密口令(chr()、ord())

简单加密口令

我练习做“学生管理系统”时,给系统加了个登录口令。但“明文”存储口令就相当于树枝插门,于是就做了简单的ord(s)加减运算(加密),直接以ord(s)列表存储口令文本 到文件passwords.dat 。 留了“后门”——直接找到口令文本存储文件删除,登录就不向您要口令了。😃😃 敬请大佬和与我一样的初学者,指正错漏和提出宝贵建议。🤝🤝🤝

☆程序调试环境☆
python 3.6.6 安卓版(手机)

知识点
json.dump(s, open(filename))
技巧

口令文本用加密的用户键入字符直接比对校验,感觉安全(可能不必要这样子😜)。


代码运行效果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
存储的口令文本"Chongqing"

在这里插入图片描述

口令解密

lis = [85, 122, 129, 128, 121, 131, 123, 128, 121]
print("\n"*3)
print("存储口令:",  lis, "\n")
print('密文口令:"', end="")
for i in lis: print(chr(i), end="")
print('"\n')
print('解码口令:"', end="")
for i in lis: print(chr(i-18), end="")
print('"\n')

run 解密代码
在这里插入图片描述


主模块

==My python code==
#!/sur/bin/nve python
#-*-coding:utf8;-*-
#qpy:console

#glob.glob(filename) 校验passwords.dat是否存在
import glob


"""
载入自定义通用工具
1. my_time(s) 获取当前系统时间格式字符串
2. show_tip(s) 提示文字打印
3. show_menu(menu_list) 菜单列印
"""
from stars_moon_tools import show_tip, my_time, show_menu

#passwords_read(filename): 密码读取
from passwords_tools import passwords_read

#1. is_menu(flag) 菜单选择
#2. passwords_proving() 密码校验
from students_tools import passwords_proving, is_menu

#main
#口令校验,有设定系统密码,校验。否则忽略
if glob.glob("passwords.dat")!=[]:
    passwords_list = passwords_read("passwords.dat")
    show_tip("请输入您的 %d 位口令。"%len(passwords_list))
    passwords_proving()
while True:
    
    """学生管理系统主模块"""
    
    print("\n"*3)
    #显示当前系统时间
    print("﹊"*20)
    print(my_time("年月日").center(40))
    print("﹊"*20)
    print("\n")
    s = "欢迎使用【学生管理系统】"
    print(s.center(32))
    #调用函数列印系统菜单
    show_menu(["添加", "查询", "删除", "修改", "密码", "说明"])
    s = "请选择菜单:"
    flag = input(s.rjust(16)).strip()
    #输入正确,调用菜单选择
    if flag in ["0", "1", "2", "3", "4", "5", "6"]:
        is_menu(flag)
    else:
        #显示错误提示文字
        show_tip("菜单选择错误!请重新选择。")

口令模块

==My python code==
def passwords():
    
    def passwords_alter():
        
        """密码修改"""
        
        #口令校验,有设定系统密码,校验。否则忽略
        if glob.glob("passwords.dat")!=[]:
            show_tip("请输入旧密码。")
            #密码校验
            passwords_proving()
        show_tip("请输入新密码。")
        #密码输入
        passwords = passwords_in()
        #密码加密
        passwords = passwords_encrypt(passwords)
        #密码存储
        passwords_save(passwords)
        #密码修改成功提示
        show_tip("系统登录密码,修改成功。")
    
    print("\n"*3)
    print("【学生管理系统】".rjust(20))
    print("-=密码修改=-".rjust(22))
    print("\n"*2)
    print("1. 修改    0. 返回".center(36))
    print("\n"*2)
    flag = input("请您选择:".rjust(16)) 
    if flag in ("1", "0"):
        if flag=="1": passwords_alter()
    else: show_tip("选择错误!请重试。")

口令处理代码

==My python code==
#!/sur/bin/nve python
# coding: utf-8

"""
glob.glob(filename) 校验passwords.dat是否存在
sys.exit() 退出系统
json.dump(s, f) 写入文件
"""
import glob, sys, json

"""
passwords tools 通用工具

1. passwords_read(filename): 密码读取
2. passwords_in() 密码输入
3. passwords_save(passwords) 密码保存
4. passwords_encrypt(passwords) 密码加密
"""

def passwords_read(filename):
    
    if glob.glob(filename)!=[]:
        #存储有密码数据,return 读取内容
        return json.load(open(filename))
    else:
        #没有密码设定,return None
        return None


def passwords_in():
    
    print("\n"*3)
    return input("请输入密码:".rjust(16)).strip()


def passwords_save(passwords):
    
    json.dump(passwords, open("passwords.dat", "w"))
    

def passwords_encrypt(passwords):
    
    """口令字符串加密,return 加密后的字条串列表"""
    
    passwords_list = []
    for i in passwords:
        i_ord = ord(i)+18
        passwords_list.append(i_ord)
    return passwords_list
    
    with open("passwords.dat", "w") as f:
        #将json密码字符串,写入文件
        json.dump(passwords, f)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦幻精灵_cq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值