可用ascii偏移、base64编码、异或运算和自定义替换表实现简易加解密:ascii偏移需区分大小写并处理边界;base64仅编码无保密性;异或支持单字符密钥且加解密函数相同;替换表易被频率分析破解,均不适用于真实安全场景。

可以用字符串的编码、移位、替换等基础操作实现简易加解密,适合学习原理或临时混淆数据,但不适用于真实安全场景。
用ASCII偏移做字符移位
对每个字符的ASCII码加减固定数值,是最直观的可逆方式。注意大小写字母需分别处理边界,避免越界变成控制符或符号。
- 加密时:小写字母超过
'z'就减26,大写字母超过'Z'也减26 - 解密时:只需用相同偏移量反向操作,即调用加密函数传入负数偏移
- 数字、空格、标点默认保持不变,如需统一处理要额外判断
用Base64做快速编码/解码
Base64不是加密,而是把字节序列转成标准ASCII字符串,常用于接口传输或配置文件中隐藏明文,一解即开,毫无保密性。
- 先用
.encode('utf-8')转字节,再用base64.b64encode()编码 - 解码时顺序相反:
base64.b64decode()→.decode('utf-8') - 结果是纯文本,无密钥,任何在线工具都能秒破
用异或(XOR)实现单字符密钥加解密
利用a ^ b ^ b == a的特性,同一个密钥字符对每个原文字符做异或,加密和解密函数可以完全一样。
- 只支持单字符密钥,如
"k";多字符密钥需循环使用或扩展逻辑 - 所有字符(包括中文)都可参与运算,因为
ord()能正确返回Unicode码点 - 输出可能含不可见字符,保存或传输前建议再做Base64编码
用自定义替换表做字符映射
预先定义字典,把常用字符一对一替换成其他字符,比如{'a': 'q', 'b': 'w', ...},解密时反转字典即可。
- 表越完整(覆盖大小写、数字、常见符号),混淆效果越明显
- 但频率分析很容易破解——比如密文中出现最多的字符大概率对应原文的
'e' - 不建议用于任何需要保密的场合,仅适合教学演示











