# encode_decode **Repository Path**: LotteWong/encode_decode ## Basic Information - **Project Name**: encode_decode - **Description**: 该项目保存多种对文本加密和解密的机制,可直接用于对关键信息的加密和解密。 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2018-09-08 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # encode_decode --- #### 项目介绍 该程序保存多种对文本加密和解密的机制,可直接用于**对关键信息的加密和解密**。同时本程序提供**在线加解密**或**本地加解密**,并可选择是否**保存密文和明文**。 #### 包含文件 - `encode_decode_seed.py` 种子值加解密PY文件 - `encode_decode_cal.py` 自定义加解密PY文件 - `encode_decode_seed.exe` 种子值加解密可执行文件 - `encode_decode_cal.exe` 自定义加解密可执行文件 - `icon.ico` 图标文件 - `plaintext.txt` 测试明文文件 - `ciphertext.txt` 测试密文文件 #### 实现原理 1. **需要注意的是**:加密和解密是**互逆**的过程,且该程序中对**多种语言**都支持 2. **加密**: - **原理**:获取明文和密钥,通过**明文的逐个字符**和**算法处理过后的密钥**进行**异或加密**成整数,即得密文 - **算法**: 1. 种子值加密:random(seed)会生成随机的一串数,但这一串数在种子值相同的情况下的生成是固定的 2. 自定义加密:将 `key` 通过地板除和余数运算扩展到和 `plaintext` 一致的长度,再逐个对应加密 3. **解密**: - **原理**:获取密文和密钥,通过**密文的逐个整数**和**算法处理过后的密钥**进行**异或解密**成字符,即得明文 - **算法**: 1. 种子值解密:random(seed)会生成随机的一串数,但这一串数在种子值相同的情况下的生成是固定的 2. 自定义解密:将 `key` 通过地板除和余数运算扩展到和 `ciphertext` 一致的长度,再逐个对应解密 4. **图形用户界面的支持**:详细参考 `easygui` 的模块文档 #### 如何运行 1. 复制本目录下的所有文件至本地 2. 可直接运行.exe文件,亦可打开相关解释器运行.py文件 #### 操作指南 - 按照选项按钮提示选择需要的功能:**[加密] [解密] [退出]** - 加解密过程中都支持 **在线加解密[字符串]** 和 **本地加解密[文件]** - 加解密后可选择是否**保存密文和明文** #### Bug - 有时解压会出现异或运算时超出ASCII码范围的情况,重新启动程序即可 - 用pyinstaller打包生成的.exe可执行文件出错了,暂时还无法使用