snehalathaArakkonam/encrypt-decrypt-tool-c

GitHub: snehalathaArakkonam/encrypt-decrypt-tool-c

一个使用 C 语言实现的密码学教育控制台工具,集成八种经典与现代加密算法,帮助用户学习和理解密码学基础概念。

Stars: 0 | Forks: 0

# 密码学加密-解密工具 ## 概述 **密码学加密-解密工具**是一个使用 **C** 语言实现的完整控制台密码学套件。它提供了一套全面的传统与现代加密算法,并配备了交互式菜单、文件持久化、活动日志和强度分析。该工具专为教育目的而设计,展示了基本的密码学概念,如字符串操作、模运算、按位运算和文件处理。 ## 功能 - **8 种加密算法** - Caesar Cipher (移位密码) - Vigenère Cipher (多表替换) - Reverse Cipher (文本反转) - Atbash Cipher (镜像映射) - XOR Cipher (按位 XOR) - RSA Cipher (简化的公钥加密) - Base64 编码 - **交互式菜单系统** – 提供易于使用的加密和解密提示。 - **历史记录追踪** – 每次加密/解密操作都会带有时间戳并存储在二进制文件 (`encryption_history.dat`) 中。 - **RSA 密钥生成** – 生成公钥/私钥对并自动存储 (`rsa_keys.dat`)。 - **强度分析** – 根据字符多样性、唯一字符和字符类型评估加密文本的质量。 - **活动日志** – 所有重要操作都会带有时间戳记录到 `cryptography.log` 中。 - **文件持久化** – 从磁盘保存和加载加密历史记录。 - **输入验证** – 对所有用户输入进行验证以防出错。 ## 已实现的算法 | 算法 | 类型 | 描述 | |-----------------|--------------------|-------------| | **Caesar** | 替换 | 将每个字母移动固定的位数。 | | **Vigenère** | 多表 | 使用关键字来确定每个字符的可变移位。 | | **Reverse** | 转置 | 反转整个字符串。 | | **Atbash** | 替换 | 将每个字母映射到字母表中的相反位置 (A↔Z, B↔Y, …)。 | | **XOR** | 流密码 | 使用重复的密钥进行按位 XOR。 | | **RSA** | 公钥 | 使用小素数进行演示的简化实现。 | | **Base64** | 编码 | 使用 64 字符的字母表将二进制数据转换为 ASCII 文本。 | ### 前置条件 - C 编译器(推荐使用 GCC) - `make`(可选,用于使用提供的 Makefile) - 标准 C 库(无外部依赖) ### 使用 Make 编译 ``` make Compile Manually bash gcc -o crypto cryptography.c -lm Clean Object Files bash make clean Usage Run the executable: bash ./crypto The main menu will appear: ``` # ======================================== 加密-解密工具 密码学套件 v1.0 1. 加密文本 2. 解密文本 3. 查看加密历史 4. 生成 RSA 密钥 5. 分析加密强度 6. 保存到文件 7. 从文件加载 8. 清除历史 9. 退出 ======================================== 输入选择: 按照屏幕上的提示选择算法、输入密钥并查看结果。 文件结构 文件 描述 cryptography.c 包含所有逻辑和菜单集成的主程序。 caesar.c Caesar 密码功能。 vigenere.c Vigenère 密码功能。 rsa.c RSA 辅助功能(素数、最大公约数、模幂、密钥生成)。 xor.c XOR 密码功能。 base64.c Base64 编码/解码功能。 utils.c 实用工具功能(日志记录、时间格式化)。 encryption_history.dat 存储加密记录的二进制文件。 rsa_keys.dat 存储 RSA 密钥对的二进制文件。 cryptography.log 所有活动的文本日志。 README.md 本文档。 Makefile 构建自动化脚本。 使用示例 使用 Caesar Cipher 加密 text 输入选择: 1 === 选择加密方式 === 1. Caesar Cipher(简单移位) 2. Vigenere Cipher(关键字移位) 3. Reverse Cipher(文本反转) 4. Atbash Cipher(镜像映射) 5. XOR Cipher(按位 XOR) 6. RSA Cipher(公钥) 7. Base64 编码 8. 返回主菜单 输入算法: 1 输入要加密的文本: HELLO 输入移位数 (1-25): 3 === 加密结果 === 原文: HELLO 加密后: KHOOR 解密后: HELLO ✅ 解密成功! 生成 RSA 密钥 text 输入选择: 4 已生成 RSA 密钥: 素数1: 7, 素数2: 11 模数: 77 公钥 (e): 13 私钥 (d): 37 RSA 密钥已保存到 rsa_keys.dat 强度分析 text 输入选择: 5 输入原始文本: HELLO 输入加密文本: KHOOR === 加密强度分析 === 原始长度: 5 个字符 加密长度: 5 个字符 唯一字符数: 4 字符多样性: 80% 字符类型: 大写=5, 小写=0, 数字=0, 特殊字符=0 强度: 强 🔒🔒 建议:适合日常使用 ## 注意事项 RSA 已被简化 – 使用小素数 (≤ 47),并且仅适用于小于模数的数字消息。它仅用于学习,不适用于现实世界中的安全场景。 Base64 – 根据 RFC 4648 标准进行编码和解码,并带有适当的填充。 历史记录 – 最多存储 100 条记录;存满后旧记录将被覆盖。 所有算法均同时支持加密和解密;该工具会自动处理密钥输入和验证。 ## 许可证 ## 本项目基于 MIT 许可证授权 – 有关详细信息,请参阅 LICENSE 文件。 ## 致谢 受到经典密码学教科书和在线资源的启发。 作为 C 语言编程技能和密码学概念的全面演示而构建。 享受密码学!🔐
标签:加密解密, 密码学, 手动系统调用, 教学工具