猫史档案馆


【Python作品分享】SAH数据加密【作品秀】

用户:叮咚AGik叮咚AGik查看:1 回复:3 评论:1 创建时间:2021-10-30T12:11:57


【作品展示】

center_image

 

【作品介绍】

SAH数据加密beta版

分为三种加密方式(ordbin,ordhex,ordbin),解密自动判断加密算法并解密。

可一键多次加密。解密自动解密至明文。算法为计算机转换,不易破解。有系统日志和账号记录。卸载和图形化,运行需pip下载pyautogui和pyeasygui。账号和密码随意填写,管喵密码报密,密码自动转换为*,请勿随意查看源代码。

——本文由叮咚 A Gik原创抄袭必究!

 

【作品源代码】

import time
import pyautogui
# 设定函数
def function1(写入):
    fp = open("系统日志.orclog", "a")
    fp.write(time.ctime() + 写入 + "\n")
    fp.close()
# 记录系统启动
function1("系统启动")
# 启动前判定
# 是否曾异常关闭
# 读取pdbool
fp = open("错误后再启动判定.pdbool", "r")
strs = fp.read()
fp.close()
# 判定是否曾异常关闭
if(strs == "True"):
    # 曾异常关闭
    fp = open("上次登录的账号.dlzhlog", "r")
    strs = fp.read()
    fp.close()
    fp = open("系统日志.orclog", "a")
    fp.write(strs + "异常关闭,在" + time.ctime() + "发现!"+"\n")
    fp.close()
    fp = open("曾经异常关闭账号.ygzlog", "a")
    fp.write(strs+"\n")
    fp.close()
# 变量预加载
i = 0
# 账号注册登录
while(i == 0):
    # 询问登录或注册
    xx = pyautogui.confirm('登录或注册', buttons=['注册', '登录'])
    # 判定登录或注册
    if(xx == "登录"):
        # 登录
        # 记录操作
        function1("启动登录进程")
        # 记录操作
        function1("开始输入登录账号")
        # 输入账号
        账号 = pyautogui.prompt('账号')
        # 记录操作
        function1("结束输入登录账号")
        # 记录操作
        function1("开始输入登录密码")
        # 输入密码
        密码 = pyautogui.password('密码')
        # 记录操作
        function1("结束输入登录密码")
        # 启动账号库
        fp = open("账号密码.zhmmlog", "r")
        strs = fp.readlines()
        # 将密码整合
        zhmm = 账号 + " " + 密码 + '\n'
        # 核验账号是否已注册
        if(zhmm in strs):
            # 记录操作
            function1("验证结果已注册")
            # 已注册
            用户名 = zhmm
            i = 1
            fp.close()
            pyautogui.alert(text='登录成功', title='SAH')
        else:
            # 记录操作+zhmm
            function1("验证结果未注册,尝试登录的账号密码:" + zhmm)
            # 未注册
            pyautogui.alert(text='未注册,请先注册账号', title='SAH')
            fp.close()
    elif(xx == "注册"):
        # 注册
        # 记录操作
        function1("开始注册账号")
        # 启动账号库(为防止二次注册)
        fp = open("账号密码.zhmmlog", "r")
        strs = fp.readlines()
        fp.close()
        # 记录操作
        function1("开始输入注册账号")
        # 输入账号
        账号 = pyautogui.prompt('账号')
        # 记录操作
        function1("结束注册账号")
        # 启动账号库写入
        fp = open("账号密码.zhmmlog", "a")
        # 设置密码
        while(i == 0):
            # 记录操作
            function1("开始输入第一次注册密码")
            # 输入密码
            密码 = pyautogui.password('第一次输入密码')
            # 记录操作
            function1("结束输入第一次注册密码")
            # 记录操作
            function1("开始输入第二次注册密码")
            # 验证密码(为保证密码正确)
            密码验证 = pyautogui.password('第二次输入密码')
            # 记录操作
            function1("结束输入第二次账号密码")
            # 将密码整合
            zhmm = 账号 + " " + 密码 + '\n'
            # 判定账号是否已注册
            if(zhmm in strs):
                # 已注册
                # 记录操作
                function1("判定结果已经注册,已注册过的账号密码:" + zhmm)
                pyautogui.alert(text='您的账号注册,请直接登录', title='SAH')
                break
            else:
                # 未注册
                # 记录操作
                function1("判定结果未注册")
                # 验证密码两次输入是否一致
                if(密码 == 密码验证):
                    # 一致
                    # 记录操作
                    function1("判定结果密码一致")
                    fp.write(zhmm)
                    fp.close()
                    pyautogui.alert(text='注册成功', title='SAH')
                    用户名 = zhmm
                    i = 1
                else:
                    # 不一致
                    # 记录操作
                    function1("判定结果密码不一致,第一次的密码:" + 密码 + ",第二次密码:" + 密码验证)
                    pyautogui.alert(text='两次密码输入不一样,请重新输入', title='SAH')
# 重置pd
fp = open("错误后再启动判定.pdbool", "w")
fp.write("True")
fp.close()
# 加载上次登录账号
fp = open("上次登录的账号.dlzhlog", "w")
fp.write(zhmm)
fp.close()
# 函数预加载
def 加密():
    # 记录操作指令
    function1(zhmm + "启动加密进程")
    # 记录操作指令
    function1(zhmm + "开始输入加密次数")
    # 输入加密次数
    cs = pyautogui.prompt('次数')
    # 记录操作指令
    function1(zhmm + "结束输入加密次数" + "次数:" + cs)
    # 记录操作指令
    function1(zhmm + "开始输入加密算法")
    # 输入加密算法
    jmsf = pyautogui.confirm('服务选择', buttons=['bin','hex','oct'])
    # 记录操作指令
    function1(zhmm + "结束输入加密算法" + "加密算法:" + jmsf)
    # 记录操作指令
    function1(zhmm + "进入加密循环")
    # 进行加密
    for I in range(int(cs)):
        # 记录操作指令
        function1(zhmm + "开始进行加密循环" + "循环:" + str(I))
        # 加密
        # 导入数据
        fp = open("解密.txt", "r+")
        strs = fp.read()
        fp.close()
        # 导入文件中的数据
        fp = open("解密.txt", "r+")
        strs = fp.read()
        fp.close()
        # 记录操作指令
        function1(zhmm + "进行加密" + "内容:" + strs)
        # 加载变量
        待加密, 未解译加密, i, 已加密 = [], strs, 0, []
        # 将加密数据写入列表
        for __count in range(len(未解译加密)):
            待加密.append(未解译加密[i])
            i += 1
        # 通过算法进行加密
        if(jmsf == "bin"):
            for __count in range(len(待加密)):
                已加密.append(str(bin(ord(待加密[0]))))
                del 待加密[0]
            sf = "bin"
        elif(jmsf == "oct"):
            for __count in range(len(待加密)):
                已加密.append(str(oct(ord(待加密[0]))))
                del 待加密[0]
            sf = "oct"
        elif(jmsf == "hex"):
            for __count in range(len(待加密)):
                已加密.append(str(hex(ord(待加密[0]))))
                del 待加密[0]
            sf = "hex"
        # 保存加密结果到文件
        fp = open("解密.txt", "w")
        fp.write(' '.join(已加密))
        fp.close()
    # 记录操作指令
    function1(zhmm + "结束加密" + "完成全部循环" + "加密内容:" + (' '.join(已加密)) + "算法:" + sf + "总次数:" + cs)
    # 记录操作指令
    function1(zhmm + "开始加密结果总保存")
    # 保存加密结果到文件
    fp = open("解密.txt", "w")
    fp.write(' '.join(已加密))
    fp.write(" " + cs)
    fp.close()
    fp = open("解密.txt", "r")
    strs = fp.read()
    pyautogui.alert(text=strs, title='SAH')
    fp.close()
    # 记录操作指令
    function1(zhmm + "结束加密结果总保存" + "最终加密内容:" + strs)
def 解密():
    # 记录操作指令
    function1(zhmm + "启动解密进程")
    # 记录操作指令
    function1(zhmm + "开始导入数据")
    # 导入数据
    fp = open("解密.txt", "r+")
    strs = fp.read()
    fp.close()
    # 简易重置变量
    待加密, 未接译加密 = [], strs
    # 将加密数据写入列表
    待加密 = 未接译加密.split(' ')
    # 记录操作指令
    # 记录操作指令
    function1(zhmm + "开始读取次数")
    # 读取次数
    cs = 待加密[-1]
    # 记录操作指令
    function1(zhmm + "结束读取次数" + "次数:" + cs)
    # 记录操作指令
    function1(zhmm + "开始操作列表")
    # 列表操作
    del 待加密[-1]
    # 记录操作指令
    function1(zhmm + "结束操作列表")
    # 记录操作指令
    function1(zhmm + "开始文件操作")
    # 文件操作
    fp = open("解密.txt", "w")
    fp.write(' '.join(待加密))
    fp.close()
    # 记录操作指令
    function1(zhmm + "结束文件操作")
    # 记录操作指令
    function1(zhmm + "加密数据:" + str(待加密))
    for i in range(int(cs)):
        # 记录操作指令
        function1(zhmm + "开始进行解密循环" + "循环:" + str(i))
        # 解密
        # 记录操作指令
        function1(zhmm + "进行解密")
        # 导入数据
        fp = open("解密.txt", "r+")
        strs = fp.read()
        fp.close()
        # 记录操作指令
        function1(zhmm + "进行加密" + "内容:" + strs)
        # 加载变量
        待加密, 未接译加密, i, 已加密 = [], strs, 0, []
        # 将加密数据写入列表
        待加密 = 未接译加密.split(' ')
        # 进行加密
        sf = "Null"
        if("0x" in 待加密[0]):
            for __count in range(len(待加密)):
                已加密.append(str(chr(int(int(str(待加密[0]), 16)))))
                del 待加密[0]
            sf = "hex"
        elif("0o" in 待加密[0]):
            for __count in range(len(待加密)):
                已加密.append(str(chr(int(int(str(待加密[0]), 8)))))
                del 待加密[0]
            sf = "oct"
        elif("0b" in 待加密[0]):
            for __count in range(len(待加密)):
                已加密.append(str(chr(int(int(str(待加密[0]), 2)))))
                del 待加密[0]
            sf = "bin"
        # 保存加密结果到文件
        fp = open("解密.txt", "w")
        fp.write(''.join(已加密))
    # 记录操作指令
    function1(zhmm + "结束加密" + "加密内容:" +(' '.join(已加密)) + "算法:" + sf)
    pyautogui.alert(text=已加密, title='SAH')
def 写入():
    # 写入
    # 记录操作指令
    function1(zhmm + "进行写入")
    # 开始运行
    fp = open("解密.txt", "w")
    fp.write(pyautogui.prompt('重置内容'))
    fp.close()
def 读取():
    # 读取
    # 记录操作指令
    function1(zhmm + "进行读取")
    # 开始运行
    fp = open("解密.txt", "r")
    strs = fp.read()
    fp.close()
    if(strs == ""):
        pyautogui.alert(text='Null', title='SAH')
    else:
        pyautogui.alert(text=strs, title='SAH')
def 重置():
    # 重置
    # 记录操作指令
    function1(zhmm + "进行重置")
    # 开始运行
    fp = open("解密.txt", "w")
    fp.close()
# 运行主程序
# 变量预加载
zjdr = 0
# 记录操作指令
function1(zhmm + "默认前缀为自动前缀")
while True:
    ini = pyautogui.confirm('服务选择', buttons=['加密','解密','写入','读取','重置','停止'])
    if (ini == "加密"):
        加密()
    elif(ini == "解密"):
        解密()
    elif(ini == "写入"):
        写入()
    elif(ini == "读取"):
        读取()
    elif(ini == "重置"):
        重置()
    elif(ini == "停止"):
        # 停止
        # 记录操作指令
        function1(zhmm + "停止程序")
        # 开始运行
        break
pyautogui.alert(text='程序停止', title='SAH')
# 重置pd
fp = open("错误后再启动判定.pdbool", "w")
fp.write("False")
fp.close()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
叮咚AGik叮咚AGik

核心源代码展出,抄袭必究!

 

点赞0


评论


Albert钟Albert钟

这()

点赞0


评论


叮咚AGik叮咚AGik

imgsrc="https://static.codemao.cn/emoji/codemao/%E7%BC%96%E7%A8%8B%E7%8C%AB_%E6%90%93%E5%A4%B4.gif"alt="emotion_编程猫_搓头"

点赞0


评论