推荐使用 Ed25519 - 现代、快速、紧凑。ECDSA P-256 可在较旧的浏览器上运行。
100% 客户端运行 - 密钥、消息和签名永远不会离开你的浏览器。
功能说明
数字签名工具在不泄露任何秘密的前提下证明消息出自谁手。它在你的浏览器中生成一对真实的非对称密钥 - Ed25519 或 ECDSA P-256 - 用私钥为任意文本签名,并用配对的公钥验证签名。一个有效的签名是数学证明:私钥持有者签了恰好这条消息 - 只要改动消息的一个字符,或用任何其他密钥验证,检查都会失败。这个性质叫做不可否认性(non-repudiation) - 与共享密码不同,签名者事后无法抵赖,因为只有 TA 的私钥可能产生这个签名。
所有操作都通过浏览器的 Web Crypto API 完成。密钥在本地生成,以标准的十六进制 DER 格式导出(公钥为 SPKI、私钥为 PKCS8),从不接触服务器。两种算法都产生紧凑的 64 字节签名,基于 SHA-256 摘要(ECDSA)或原始消息(Ed25519)。
使用方法
- 选择一种算法 - Ed25519(推荐:现代、快速、确定性签名)或 ECDSA P-256(对旧浏览器支持最好)。
- 在 Generate 页按 Generate key pair。复制公钥(可随意分享)和私钥(务必保密)。
- 在 Sign 页粘贴私钥、输入消息、按 Sign message。复制十六进制签名。
- 在 Verify 页粘贴公钥、消息和签名,然后按 Verify signature。绿色徽章表示签名真实有效;红色徽章表示消息、签名或密钥不匹配。
示例
签名并验证的完整往返(Ed25519):
message: "Invoice #42, total $1,200 - GΛB"
signature: 9a3f…(128 hex chars = 64 bytes)
verify with the signer's public key → ✅ Valid signature
被篡改的消息:
message: "Invoice #42, total $9,200 - GΛB" ← one digit changed
same signature + same public key → ❌ Invalid signature
错误的密钥:
verify the original signature with ANY other public key → ❌ Invalid signature
补充说明
- 零服务器接触: 密钥、消息和签名只存在于你的浏览器标签页中。不上传、不记录、不存储。你可以离线签名。
- Ed25519 与 ECDSA P-256: Ed25519 是现代默认之选 - 验证快速、签名具有确定性(同一消息 + 同一密钥总是产生相同的字节)、签名 64 字节,并能抵抗侧信道陷阱。ECDSA P-256(基于 SHA-256)是 NIST 曲线,在旧浏览器和智能卡中支持面最广。两者都被认为是安全的;在可用时,Ed25519 是更好上手的选择。
- 私钥就是身份。 没有吊销、没有找回:任何拿到你私钥的人都能以你的名义签名。真实用途请在可信环境中生成密钥并加密保存。
- 互操作提示: 这里的 ECDSA 签名采用 Web Crypto 使用的原始 IEEE P1363
r||s布局 - 不是ASNASNA number identifying one routing domain on the internet (one AS = one network under a single policy), used by BGP to exchange routes.Learn more
.1 DER。OpenSSL 用户需要openssl pkeyutl -rawin或格式转换才能与 DER 签名对比。Ed25519 签名在各处都是标准的 RFC 8032 64 字节格式。 - 签名证明作者身份,不保密。 消息保持明文 - 要隐藏内容,请配合 File Encryptor 使用。如果需要的是共享密钥(对称)的消息认证而非公钥证明,请看
HMACHMACA construction that combines a hash function with a secret key to prove a message is intact and came from someone holding the key.
Generator。 - 相关工具:
HMACHMACA construction that combines a hash function with a secret key to prove a message is intact and came from someone holding the key.
Generator、File Encryptor、HashHashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
Generator。