这个工具适合做什么
在线ChaCha20加密解密工具使用ChaCha20算法对数据进行加密和解密。ChaCha20是由Daniel J.Bernstein设计的一种现代流密码,它是Salsa20的变体,具有更好的扩散性。
它适合做协议联调、加密实现检查、测试数据构造和兼容性排查。当前页支持直接输入明文或密文,并配合不同编码格式快速完成浏览器侧的加解密验证。
密钥和 nonce 要求
ChaCha20算法输入密钥(key)为32字节,随机字符(nonce)为8字节或12字节,本工具支持utf-8、base64、hex三种不同编码输入。
- 密钥长度必须满足 32 字节要求,否则无法按标准 ChaCha20 正常工作。
- nonce 必须使用 8 字节或 12 字节,并且同一把密钥下不应重复使用同一个 nonce。
- 消息、密钥和 nonce 都要确认编码方式一致,否则看起来相同的值也可能被解析成不同字节序列。
使用步骤
- 输入待加密的明文或待解密的密文,并选择对应编码格式。
- 填入 32 字节密钥和符合要求的 nonce。
- 选择输出编码后执行加密或解密。
- 如果只是调试流程,可用随机填充功能快速生成测试用密钥与 nonce;真实接入时仍应遵循上游系统的生成规则。
使用时要注意
- ChaCha20 提供的是加密能力,本身并不自动保证密文和附加数据的完整性。
- 如果你的协议要求“带认证的加密”,应确认它要求的是原始 ChaCha20 还是带认证的具体构造,不能默认两者可直接互换。
- nonce 复用会破坏 ChaCha20 的保密性,这一点比很多人想象中更容易踩坑。
常见问题
为什么我输入的 key 或 nonce 无法使用?
最常见原因是字节长度不符合要求,或者你看到的是字符长度而不是实际字节长度。尤其是在 UTF-8、Base64、Hex 三种输入方式切换时,长度判断很容易出错。
同一份明文为什么每次加密结果可能不同?
如果你更换了 nonce,即使密钥和明文相同,输出密文也会不同。这是流密码的正常现象,也是避免模式泄露的重要机制。
ChaCha20 和普通文本编码工具有什么区别?
文本编码工具只是改变数据表示方式,不提供保密性;ChaCha20 是真正的加密算法,会在正确密钥和 nonce 下把原文转换成不可直接读懂的密文。
相关工具
- 对称加密/解密:AES、TripleDES、Rabbit、RC4、和TripleDES在线加密和解密