RU EN ES 中文

维尔南密码

异或加密 · 按位运算

维尔南密码是如何工作的?

+

维尔南密码(一次性密码本)是一种在三个条件下理论上不可破译的加密方法:密钥是随机的、与消息等长,并且只使用一次。

1 选择编码

消息中的字符会被转换成比特。可选编码:博多码(每字符 5 位)、ASCII 7/8 位、UTF-8(变长)。字符表会随之动态更新。能输入哪种语言取决于编码:博多码只支持英文字母、数字和部分标点;ASCII 7 只支持英文;ASCII 8 支持带重音的西欧字母(如西班牙文);中文、俄文以及任何其他语言请选择 UTF-8。

2 输入消息

文本按所选编码转换为比特序列。不支持的字符会以警告形式高亮显示。

3 生成密钥

密钥随机生成(0 和 1 出现的概率相等)。长度可选:64–2048 位,或“与消息等长”(真正的一次性密码本)。如果密钥比消息短,它会循环重复(安全性降低)。

4 加密(异或)

消息的每一位都与密钥的一位进行异或(XOR)运算:0⊕0=0, 0⊕1=1, 1⊕0=1, 1⊕1=0。模式:逐位(直观展示按位运算)或即时完成。

5 传输
爱丽丝发给鲍勃:
  • 密钥——通过安全信道(动画:沿曲线运动的金色数据包)
  • 密文——通过公开信道(动画:沿直线运动的蓝色数据包)
两个数据包都以 HEX 格式显示(比特每 8 位一组,转换为十六进制符号)。两者同步到达。
6 解密

鲍勃用同一个密钥对密文做异或:密文 ⊕ 密钥 = 原始消息。由于异或是可逆的,这一运算与加密完全相同。

7 反向解码

解密后的比特被转换回字符。用户选择解码所用的编码——系统会将结果与原始消息进行核对,并显示预览。

8 结果

最终对比:原始消息、密钥(HEX)、密文(HEX)、解密后的文本。成功匹配时会显示确认信息和统计数据。

图示说明:
● 消息 / 结果  |  ● 密钥  |  ● 密文  |  ⊕ 异或运算

重要:在真实的密码学中,密钥必须真正随机、绝不重复使用,并通过安全信道传输。本演示是一个教学模型。

选择编码

编码决定字符如何转换为比特。要输入中文,请选择 UTF-8

博多码5 位
历史上的电报码(ITA1/ITA2)。只支持英文字母、数字和部分标点。
A = 11000, B = 10011
ASCII 77 位
标准 ASCII(0-127)。只支持英文。
A = 1000001, Space = 0100000
ASCII 88 位
扩展 ASCII(0-255)。英文及带重音的西欧字母。
A = 01000001, Ä = 11000100
UTF-88-32 位
变长 Unicode。支持任何语言:中文、俄文、英文……
A = 01000001, Ж = 1101000010010110
所选编码
字符代码比特