这个程序加密后会在程序后缀出现DATA , 这个是为了方便清楚的知道什么是已加密程序 , 而且还可以让软件程序检测是否是已经加密过的程序 , 方便解密 。
完整代码:
import osimport hashlibprint("-------------------------------------软件加密工具-------------------------------------")print("关注博主不迷路!!!\nhttps://jiangongfang.blog.csdn.net/\nhttps://blog.51cto.com/u_15449377")print("使用告知:\n【加密后的文件后缀会多出DATA , 是为了方便软件检测 , 请勿乱改加密后的后缀名】")print("【保存文件默认路径 为加密文件或解密文件的当前目录 , 不是软件的当前目录】")print("【要加密或解密的文件命名不可有“./\”字符 , 否则会出错】")print("-------------------------------------软件加密工具-------------------------------------\n")name_1 = input('输入要加密或解密的文件名含后缀:')#判断是否存在该文件if os.path.exists(name_1) == True:passelse:print('请检查是否路径错误或不存在该文件!!!!')os.system('pause')exit() password = input('请输入要加密或解密的密码:')data = https://www.shwenmu.com/wenda/input('输入要保存文件的路径位置(可不填):')name_1 = name_1.replace("\\", "/")# 替换data = https://www.shwenmu.com/wenda/data.replace("\\", "/")# 替换 if name_1.split(".")[1][-4:] == 'DATA':F = name_1.split(".")[1].replace("DATA", "")if os.path.split(data)[0] == '':if os.path.split(name_1)[0] == '':data = https://www.shwenmu.com/wenda/os.path.split(name_1)[-1].split(".")[0]'.'Felse:data = https://www.shwenmu.com/wenda/os.path.split(name_1)[0]'/'os.path.split(name_1)[-1].split(".")[0]'.'Felse:https://www.shwenmu.com/wenda/https://www.shwenmu.com/wenda/https://www.shwenmu.com/wenda/https://www.shwenmu.com/wenda/data = data'/'os.path.split(name_1)[-1].split(".")[0]'.'Felse:# 保存路径if os.path.split(data)[0] == '':if os.path.split(name_1)[0] == '':data = https://www.shwenmu.com/wenda/name_1.split(".")[1]# 后缀data = https://www.shwenmu.com/wenda/os.path.split(name_1)[-1].split(".")[0]'.'data'DATA'else:data = https://www.shwenmu.com/wenda/name_1.split(".")[1]# 后缀data = https://www.shwenmu.com/wenda/os.path.split(name_1)[0]'/'os.path.split(name_1)[-1].split(".")[0]'.'data'DATA'else:name_3 = name_1.split(".")[1]# 后缀https://www.shwenmu.com/wenda/https://www.shwenmu.com/wenda/https://www.shwenmu.com/wenda/https://www.shwenmu.com/wenda/data = data'/'os.path.split(name_1)[-1].split(".")[0]'.'name_3'DATA'a = open(name_1, "rb")#读取文件b = open(data, "wb")#写入文件#使用MD5进行加密(双层加密)hl = hashlib.md5()hl.update(password.encode(encoding='utf-8'))password_list = hl.hexdigest() hl.update(password_list.encode(encoding='utf-8'))password_list2 = hl.hexdigest()password_data = https://www.shwenmu.com/wenda/password_list password_list2 #加密及解密def Encryption_and_decryption():count = 0#索引for now in a:for nowByte in now:newByte = nowByte ^ ord(password_data[count % len(password_data)])#循环遍历出密码的ord值 , 单个循环count= 1b.write(bytes([newByte]))#转换Encryption_and_decryption()a.close()b.close() os.system('pause')
可以看到已经加密的程序后缀有DATA , 解密后会恢复原来的后缀名
推荐阅读
- 如何设置ip地址 设置ip地址的方法
- 我来分享Power Point2003中绘画猴子的方法步骤 我来分享积累的最佳句
- Win10系统更新失败怎么办?Win10系统更新失败的解决方法
- Win10扬声器属性没有增强选项的解决方法
- 过敏性鼻炎是怎样导致的 过敏性鼻炎的原因和解决方法
- 苹果xr怎么下载软件 苹果xr下载软件的方法
- 分享Power Point2003将幻灯片设置成循环播放的方法步骤
- 我来分享GPU-Z对显卡体质的查看方法 我来分享一个钓黄尾的配方吧
- 教你驱动人生管理软件的具体方法 驱动人生驱动管理
- 我来分享驱动人生离线驱动的使用方法 驱动人生vip分享