Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 

Repository files navigation

聊天加密解密工具 Chat-Encryption-and-Decryption

许可证 最后提交 星标

项目简介

  • 支持多行文字加密解密
  • 换行+Ctrl Z+换行结束
  • 秘钥支持中英文和各种符号

加密原理

1、XOR 对称加密

逐个取出文本字符,和密钥循环重复后的字符做异或运算。异或有自逆特性,用同一套密钥再算一次就能恢复原文。密钥循环匹配长短不一的消息,中英文、符号都能正常参与运算,实现对称加密。

2、Base64 转码

异或运算产出的二进制数据包含大量不可打印字符,聊天框复制发送会发生丢失现象。Base64把二进制数据拆分重组,转换成大小写字母、数字、+、/ 组成的可视字符串,末尾用 = 补齐分组长度。解密时先解码恢复二进制,再异或还原内容。

完整流程:

加密:明文 → 密钥循环异或 → 二进制密文 → Base64编码 → 可复制密文 解密:解密流程反向执行即可。

使用示例

===== 聊天加密解密工具 =====
输入秘钥:ALlen刘123

请选择你要做的事:
1.加密
2. 解密
0.退出
你的选择:1
输入要加密的信息(多行可粘贴,回车+Ctrl+Z +回车结束)
文本测试123
^Z
加密后:
NQkUEdwjP+UDAXJm
已自动复制到剪贴板!

请选择你要做的事:
1.加密
2. 解密
0.退出
你的选择:2
输入密文(回车+Ctrl+Z+回车结束):
NQkUEdwjP+UDAXJm
^Z
解密后:
文本测试123

已自动复制到剪贴板!

请选择你要做的事:
1.加密
2. 解密
0.退出
你的选择:θ
已关闭。

————————————————————————————————

编译参数

编译时加入以下参数:

-lurlmon

在链接时加入以下参数:

-static-libstdc++ -static-libgcc

有问题欢迎大家提交PR或者Issue!