文本工具 · 加密混淆

文字加密

凯撒/Vigenere/倒序/替换

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 53 次使用
选方式 · 输入文本 · 实时加密 / 一键解密

明文 plain
密文 cipher
趣味提示:以上均为简易 / 古典加密,可被轻易破解,请勿用于敏感信息。文本与密钥仅在本地处理,不上传、不入 URL。
就绪 · 输入文本即时加密
第一节

关于本工具

About

把明文打乱成密文,再按约定规则还原——凯撒、维吉尼亚、倒序、替换四种古典加密法,覆盖从简单移位到多表替换的常见场景。输入文本,选算法、设密钥(凯撒移位量、维吉尼亚密码词),即时输出密文。算法逻辑在浏览器本地执行,原文不会离开设备。适合在公开群聊中隐藏消息、写谜题线索,或教学演示加密原理——不适用于需要真正安全强度的场景。

使用场景

加密论坛签名档

程序员小陈在技术论坛发帖,想留个联系方式又怕被爬虫抓走。他把自己邮箱用凯撒密码偏移 13 位,再插入两个随机字母混淆,生成一串密文放在签名档。同好看到后手动解码联系,而爬虫抓到的只是一堆乱码。本工具支持自定义偏移量和随机填充,能抵抗批量扫描。

群聊暗号核对身份

游戏公会新成员入群,群主不想公开验证码,怕被外挂脚本抢名额。群主用维吉尼亚密码把验证词「风暴之眼」加密,密钥提前私聊发给老成员。新人进群后,老成员根据密钥解码核对,全程密文在公屏流通。本工具支持自定义密钥,加密后密文长度与明文相同,不易被察觉。

加密本地密码本

自由职业者老周用记事本存了二十多个平台密码,担心哪天电脑被借走。他把密码本整段复制进工具,选「替换」模式把字母表循环右移 5 位,数字替换成对应中文大写。存盘后文件看起来像乱码,即使被打开也读不出真实内容。本工具支持字母、数字、符号三种替换表独立设置,可组合加密。

隐藏快递面单信息

淘宝店主每天要扔掉几十个快递盒,面单上姓名电话清晰可见。她用倒序功能把收件人姓名和手机号反转,再替换掉中间 4 位数字,打印出新的小条贴在面单上覆盖原信息。快递员扫码前撕掉小条即可,本工具支持批量粘贴多行数据,一次处理一整页。

加密笔记中的敏感段落

大学生小赵用 Notion 记课堂笔记,偶尔会夹带室友的八卦和教授评价。他不想整篇加密,只把敏感段落用维吉尼亚密码加密,密钥设为自己生日。别人看笔记时,那几行像乱码,他自己解码后秒懂。本工具支持只加密选中文本,不破坏整篇格式,解码后直接替换回原文。

对比矩阵

维度本工具在线加密站手工/纸质方式
隐私纯浏览器处理,明文不上传需上传至服务器加密完全离线,无数字痕迹
离线可用支持(纯前端实现)依赖网络连接完全离线
算法选择凯撒/Vigenere/倒序/替换共4种通常仅提供凯撒或简单替换仅限手工能算的凯撒或倒序
批量处理不支持(单次单段文本)部分支持批量上传文件逐字手工转换,极慢
大小限制受浏览器内存限制(通常数MB内)通常有上传文件大小限制(如10MB)无理论限制,但人工处理极慢
收费免费部分功能需付费/注册仅需纸笔,零成本
注册无需注册部分需注册账号无需注册
第二节

使用指南

Getting Started

使用步骤

  1. 1在「明文」框输入待加密文本,如字母或数字,中文会原样保留
  2. 2从「加密方式」下拉选一种算法:凯撒(移位)、Vigenere(密钥)、倒序、替换
  3. 3若选凯撒或Vigenere,在「密钥」框输入偏移值(凯撒)或密钥词(Vigenere)
  4. 4点击「加密」按钮,右侧「密文」区立即显示加密结果,可点击复制按钮取走

输入输出示例

输入输出说明
Hello World!(凯撒,偏移3)Khoor Zruog!常规:带空格和标点的英文短语,验证凯撒移位是否保留非字母字符
abc(倒序)cba常规:简单英文单词倒序,验证基础反转逻辑
(空输入)(空)边界:空输入的处理,部分工具可能报错或返回空串
12345(凯撒,偏移26)12345边界:纯数字输入,凯撒偏移为字母表长度倍数时,数字原样输出
HELLO(凯撒,偏移0)HELLO边界:偏移0时,所有字母保持不变,验证零偏移是否被正确处理
aBcDeF(替换,a→z, b→y, c→x)zXyWvU易错:大小写混合输入,替换规则是否区分大小写(此例按大小写敏感处理)
Hello World!(Vigenere,密钥key)Rijvs Uyvjn!易错:Vigenere密钥循环使用,且非字母字符不参与加密,验证密钥对齐和标点保留

常见错误对照

1.凯撒移位超出字母表范围

✗ 错误明文 'xyz',移位 5,得到 'cde'(以为自动循环)
✓ 修复明文 'xyz',移位 5,得到 'cde'(正确循环)

凯撒密码在字母表末尾循环时,z 后接 a,但部分用户误以为超出范围会报错或截断,实际算法已处理环绕。

2.Vigenere 密钥包含非字母字符

✗ 错误密钥 'hello!',加密 'world',结果乱码
✓ 修复密钥 'hello',加密 'world',得到 'dscwr'

Vigenere 仅处理 A-Z 字母,非字母字符在密钥中会导致偏移计算错误,工具应自动忽略或报错。

3.倒序加密混淆了空格处理

✗ 错误明文 'hello world',倒序后得到 'dlrow olleh'(保留空格位置)
✓ 修复明文 'hello world',倒序后得到 'dlrow olleh'(字符级倒序,空格参与)

倒序加密默认按字符序列反转,空格视为普通字符,部分用户误以为只反转单词顺序。

4.替换加密使用了重复映射

✗ 错误映射表 'a->b, b->c, a->d',加密 'ab' 得到 'bc'(后覆盖前)
✓ 修复映射表 'a->b, b->c',加密 'ab' 得到 'bc'

替换加密要求映射一一对应,重复源字母会导致不可预测结果,工具应检测冲突或提示用户。

5.大小写未统一导致解密失败

✗ 错误密文 'HELLO' 用密钥 'world' 解密,结果乱码
✓ 修复密文 'hello' 用密钥 'world' 解密,得到 'dscwr'

Vigenere 和凯撒通常默认处理大写或小写,混用会导致偏移计算错误,建议先统一大小写。

6.替换加密未处理未映射字符

✗ 错误映射表 'a->b',加密 'cat' 得到 'cbt'(c 和 t 原样保留)
✓ 修复映射表 'a->b, c->d, t->u',加密 'cat' 得到 'dbu'

替换加密中未映射的字符默认原样输出,用户可能误以为会报错或自动跳过,导致密文不完整。

第三节

工作原理

How It Works

核心公式

C_i = (P_i + K_{j \bmod m}) \bmod 26

变量说明

  • C_i密文第 i 个字母的序号 (0-25)
  • P_i明文第 i 个字母的序号 (0-25)
  • K_j密钥第 j 个字母的序号 (0-25)
  • m密钥长度(字母个数)

示例

明文 HELLO (7,4,11,11,14),密钥 KEY (10,4,24)。C_1=(7+10) mod 26=17→R;C_2=(4+4) mod 26=8→I;C_3=(11+24) mod 26=9→J;C_4=(11+10) mod 26=21→V;C_5=(14+4) mod 26=18→S。密文:RIJVS。

明文 + 密钥(用户输入)选择加密算法凯撒 / Vigenere倒序 / 替换浏览器内计算(数据不出本机)密文(加密结果)数据流说明:用户输入的明文和密钥 → 选择加密算法 → 浏览器本地执行加密运算 → 输出密文所有数据仅在浏览器内处理,不上传服务器,保障隐私安全。
输入 / 输出 算法选择 本地处理
第四节

开发者集成

For Developers

5 种主流语言实现,复制即用:

import base64 # 凯撒加密:移位 3 plain = "HELLO" shift = 3 enc = ''.join(chr((ord(c) - 65 + shift) % 26 + 65) if c.isupper() else c for c in plain) print(enc) # KHOOR # 倒序 print(plain[::-1]) # OLLEH # Base64 替换(非标准替换,仅演示字符替换逻辑) print(base64.b64encode(plain.encode()).decode()) # SEVMTE8=
// 凯撒加密:移位 3 const plain = "HELLO"; const shift = 3; const enc = plain.split('').map(c => { const code = c.charCodeAt(0); if (code >= 65 && code <= 90) return String.fromCharCode((code - 65 + shift) % 26 + 65); return c; }).join(''); console.log(enc); // KHOOR // 倒序 console.log(plain.split('').reverse().join('')); // OLLEH // 替换(ROT13) const rot13 = plain.replace(/[A-Z]/g, c => String.fromCharCode((c.charCodeAt(0) - 65 + 13) % 26 + 65)); console.log(rot13); // URYYB
package main import "fmt" func caesar(s string, shift int) string { b := []byte(s) for i, c := range b { if c >= 'A' && c <= 'Z' { b[i] = (c-'A'+byte(shift))%26 + 'A' } } return string(b) } func reverse(s string) string { r := []rune(s) for i, j := 0, len(r)-1; i < j; i, j = i+1, j-1 { r[i], r[j] = r[j], r[i] } return string(r) } func main() { plain := "HELLO" fmt.Println(caesar(plain, 3)) // KHOOR fmt.Println(reverse(plain)) // OLLEH }
# 凯撒加密:移位 3(仅大写字母) plain="HELLO" echo "$plain" | tr 'A-Z' 'D-ZA-C' # KHOOR # 倒序 echo "$plain" | rev # OLLEH # ROT13 替换 echo "$plain" | tr 'A-Z' 'N-ZA-M' # URYYB
<?php $plain = "HELLO"; // 凯撒加密:移位 3 function caesar($s, $shift) { $result = ''; foreach (str_split($s) as $c) { if (ctype_upper($c)) { $result .= chr((ord($c) - 65 + $shift) % 26 + 65); } else { $result .= $c; } } return $result; } echo caesar($plain, 3) . "\n"; // KHOOR // 倒序 echo strrev($plain) . "\n"; // OLLEH // 替换(ROT13) echo str_rot13($plain) . "\n"; // URYYB
第五节

常见问题

Q & A
我有一段话想加密,用凯撒密码和替换密码有啥不一样?

凯撒密码是替换密码的一种特例——它把字母表循环移位固定位数(比如移3位,A变D),所以规律是全局统一的,很容易被频率分析破解。替换密码则允许你自定义一张任意映射表(A→X、B→M、C→P……),没有固定规律,强度比凯撒高很多。本工具两种都支持:想快速演示用凯撒,想认真加密一段文字用替换(自己设计映射表)。

Vigenere 密码的密钥是啥意思?我随便输个词就行吗?

密钥就是加密时用的“口令”,比如密钥是“KEY”,它会循环对应每个明文字符:第一个字母用K对应的移位量,第二个用E,第三个用Y,第四个又回到K。密钥长度越长、越随机,加密强度越高。本工具密钥只接受英文字母,建议用8位以上的随机单词或短语,别用“abc”这种短密钥——破解难度会大幅降低。

我加密了中文,解密出来怎么是乱码?

本工具的凯撒、Vigenere、替换三种算法都只对英文字母(A-Z a-z)做移位或映射,中文、数字、标点符号会被原样保留。如果解密出来是乱码,大概率是加密时把中文也当成了字母处理(比如用工具对中文做了替换),解密时却用了纯字母规则。建议加密前确认原文只包含英文字母,或使用“倒序”功能——它对中英文都有效。

倒序加密就是把字符串反过来写,这能叫加密吗?

严格说倒序不是密码学意义上的加密(没有密钥),但它是一种快速混淆手段,适合防偷瞄或临时隐藏内容。比如你在公共场合输入密码,旁边的人看到的是倒序字符串,不容易一眼记住。本工具把它归入“文字加密”模块,是因为它和凯撒/Vigenere/替换一样,能对文本做可逆变换,且不需要任何密钥——适合对安全性要求不高、但需要快速隐藏的场景。

替换密码的映射表怎么设计才安全?

替换密码的强度取决于映射表是否随机且完整。安全做法:把26个字母打乱后一一对应(比如A→X、B→M……),不要留字母不映射,也不要出现多个字母映射到同一个密文字母(否则解密会冲突)。本工具支持你手动编辑映射表,也提供“随机生成”按钮——点击后会生成一个无重复的26字母全排列,直接使用即可。解密时用反向映射表(把密文映射回原文)。

加密后的结果能再解密回来吗?有没有丢数据的风险?

本工具的所有算法(凯撒、Vigenere、替换、倒序)都是无损可逆的,只要密钥或映射表和加密时完全一致,解密结果100%恢复原文。唯一丢数据的风险是:加密时用了替换密码且映射表设计错误(比如A映射到B、B也映射到B),此时两个不同字母变成同一个密文字母,解密时无法区分。建议生成映射表后先加密一小段测试文字,再用解密功能验证能恢复,再正式使用。

这个工具加密时文字会传到服务器吗?

不会。本工具是纯前端实现(FE),所有加密/解密操作都在浏览器本地完成,文字不会被发送到任何服务器。即使断网也能用。你可以放心处理敏感信息(比如个人密码提示、私密消息),不用担心数据被中间截获或服务器留存。如果还是不放心,加密后手动复制结果、关闭页面再解密,浏览器本地缓存也不会保存。

我加密了好长一段话,结果框里只显示了前半段,后面的没了?

本工具对输入长度没有硬性限制(理论上支持几万字),但浏览器在处理超长文本时,结果区域可能因渲染性能问题出现滚动卡顿或显示不全。如果发现结果被截断,先检查是否复制时只选中了前半段;如果确定是工具显示问题,可以尝试分批次加密(比如每5000字一段),或者用浏览器的“全选+复制”快捷键(Ctrl+A / Cmd+A)把整个结果框内容复制到记事本里查看。

凯撒密码的移位量设成多少最安全?

凯撒密码的移位量只有25种可能(1-25),暴力破解非常容易。如果非要选一个,避开最常见的3(Caesar cipher默认)、13(ROT13)、25(反向),选一个7或19之类的中间值会稍微难猜一点。但说实话,凯撒密码在现代计算机面前几毫秒就能穷举完,它只适合教学演示或防普通人偷看,真正需要安全加密建议用替换密码或Vigenere。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭