import uuid import os import winreg from binascii import b2a_hex from Crypto.Cipher import AES def reg_confirm(key_path): try: key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, key_path, 0, winreg.KEY_READ) value = winreg.QueryValueEx(key, 'UUID')[0] print("注册表值为:", value) winreg.CloseKey(key) return value except: print("注册表不存在,正在创建...") # 创建注册表 key = winreg.CreateKey(winreg.HKEY_CURRENT_USER, key_path) # 写入键值 value = str(uuid.uuid1()).replace('-', '')[:16] winreg.SetValueEx(key, 'UUID', 0, winreg.REG_SZ, value) # 关闭注册表 winreg.CloseKey(key) print("已创建并写入值:", value) return key def add_to_hex16(text: bytes): if len(text) % 16: add = 16 - (len(text) % 16) else: add = 0 text = text + (b'\0' * add) return text def encrypt(text: bytes, key): mode = AES.MODE_CBC text = add_to_hex16(text) cryptos = AES.new(key, mode, key) cipher_text = cryptos.encrypt(text) return b2a_hex(cipher_text) if __name__ == '__main__': path = input('请输入pth路径') hkey = str(reg_confirm("Software\\Jiujikeruan")).encode('utf8') with open(path, 'rb') as f1: encrypted = encrypt(f1.read(), hkey) with open(path + '.jiujikeruan', 'wb') as f2: f2.write(encrypted) 将这些代码中的path=input改为用tkgui让用户选择路径
时间: 2024-03-10 09:44:09 浏览: 20
你可以使用tkinter模块来实现GUI界面,代码如下所示:
```python
import tkinter as tk
from tkinter import filedialog
root = tk.Tk()
root.withdraw()
file_path = filedialog.askopenfilename()
if not file_path:
print('未选择文件!')
else:
print('已选择文件:', file_path)
```
将这段代码替换掉原来的`path=input('请输入pth路径')`即可。
相关问题
from django.db import models from django.contrib.auth.models import AbstractBaseUser, BaseUserManager import uuid class User(AbstractBaseUser): 补全代码
class User(AbstractBaseUser):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
email = models.EmailField(unique=True)
username = models.CharField(max_length=255, unique=True)
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
date_joined = models.DateTimeField(auto_now_add=True)
# ... other fields and methods
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['username']
objects = UserManager()
def __str__(self):
return self.email
def has_perm(self, perm, obj=None):
return True
def has_module_perms(self, app_label):
return True
@property
def is_superuser(self):
return self.is_staff
class Meta:
verbose_name = 'user'
verbose_name_plural = 'users'
import logging import os import pwd import uuid
import logging: logging是Python标准库中的一个模块,用于记录和输出程序运行时的日志信息。通过使用logging模块,我们可以在程序中设置不同级别的日志信息,并将其输出到控制台或者保存到文件中。
import os: os是Python标准库中的一个模块,提供了许多与操作系统交互的函数。通过使用os模块,我们可以执行与文件和目录相关的操作,如创建、删除、重命名文件或目录,获取当前工作目录等。
import pwd: pwd是Python标准库中的一个模块,用于获取与用户账户相关的信息。通过使用pwd模块,我们可以获取当前用户的用户名、用户ID等信息。
import uuid: uuid是Python标准库中的一个模块,用于生成唯一标识符(Universally Unique Identifier)。通过使用uuid模块,我们可以生成不重复的、随机的、唯一的标识符,用于标识对象或者作为数据的唯一标识。