← 返回开发者工具
🔢
哈希摘要(md5)
🛡️
对称加密 AES
🔑
RSA 非对称加密
📈
椭圆曲线 ECC
🎫
JWT 解析与签发
输入
INPUT
📝 文本
📁 文件
0 字符 · 0 字节(UTF-8)
填入示例
清空
📂
把文件拖到这里,或点击选择文件
大文件会用 FileReader 分块读取并增量计算,不会卡死页面;文件全程只在本机内存中处理,不会上传到服务器
📄
—
—
重新选择
使用 HMAC 密钥(RFC 2104,基于纯 JS 哈希原语,不依赖 Web Crypto)
HMAC 密钥
开启后下方结果为各算法的 HMAC 值,而非普通摘要;常用于校验消息未被篡改且来自持有该密钥的一方
结果
DIGEST
复制全部
🔢
输入文本或选择文件后,这里会同时显示 5 种算法的哈希(或 HMAC)结果
算法
十六进制摘要
操作
哈希值比对器
COMPARE
哈希值 A
哈希值 B
忽略大小写与空白字符后逐字符比对,常用于校验下载文件的官方哈希值是否与本地计算结果一致
使用说明
HOWTO
本地计算
— 所有哈希算法均为纯 JavaScript 实现并内联在本页,不依赖浏览器 Web Crypto API,也不会把文本或文件发往服务器
文本模式
— 输入框内容变化后自动实时计算,按 UTF-8 编码取字节
文件模式
— 拖拽或选择文件后自动开始计算,大文件按分块增量读取并显示进度,可随时重新选择
HMAC 模式
— 开启开关并填入密钥后,结果切换为 HMAC(RFC 2104),同样纯 JS 实现,HTTP 环境下也可用
比对器
— 粘贴两个哈希值即可判断是否一致(自动忽略大小写与空白),用于校验文件完整性
密钥设置
KEY
密钥来源
口令派生(PBKDF2)
直接输入密钥(Base64 / Hex)
口令
密钥长度
AES-128(16 字节)
AES-192(24 字节)
AES-256(32 字节)
盐(Salt)
随机
加密时由服务端生成并自动回填;解密时须填入与加密时完全一致的盐,否则无法还原密钥(若解密的是本工具刚加密的结果,无需手动操作)
迭代次数
越大越安全但越慢,加解密双方需一致,最小 1000,默认 100000
摘要算法
SHA-256
SHA-1
SHA-384
SHA-512
口令派生现由后端服务统一处理,摘要算法已固定,此项暂不生效
密钥
生成随机密钥
16 字节 = AES-128,24 字节 = AES-192,32 字节 = AES-256;随机生成的长度取上方「密钥长度」选择,生成结果按「编码格式」显示为 Hex 或 Base64
加密参数
CIPHER
加密模式
AES-CBC
AES-GCM
AES-CTR
编码格式
Base64
Hex
应用于密钥(直接输入模式)与密文/明文的编解码;服务端返回的 IV / 盐固定为 Hex 编码,不受此项影响
IV / 计数器初值
随机
加密时由服务端生成并自动回填(Hex 编码);解密时必须填入加密时生成的值(若解密的是本工具刚加密的结果,无需手动操作)。GCM 的认证标签已自动附加在密文末尾,无需单独处理
附加验证数据 AAD(仅 GCM,可选)
执行
RUN
加密(明文 → 密文)
解密(密文 → 明文)
明文
执行加密
清空
密文
复制
密钥对
KEYS
用途
加密 / 解密(RSA-OAEP)
签名 / 验签(RSASSA-PKCS1-v1_5)
决定「生成密钥对」时使用的算法,以及下方哪一组操作可用;粘贴外部生成的 PEM 密钥时也需与此保持一致
密钥位长
2048 位
3072 位
4096 位
摘要算法
SHA-256
SHA-384
SHA-512
OAEP 用于 MGF1 与标签摘要;PKCS1-v1_5 用于签名摘要
生成密钥对
校验密钥
公钥(PEM)
复制
私钥(PEM)
复制
私钥仅在执行「生成密钥对 / 校验密钥」时留在浏览器内存中;执行下方解密或签名操作时,会通过本站后端接口发送私钥以完成运算(未使用第三方服务)
加密 / 解密
RSA-OAEP
加密(明文 → 密文)
解密(密文 → 明文)
编码格式
Base64
Hex
应用于密文的编解码
明文
执行加密
清空
密文
复制
签名 / 验签
RSASSA-PKCS1-V1_5
签名(原文 → 签名值)
验签(原文 + 签名值 → 结果)
编码格式
Base64
Hex
应用于签名值的编解码
原文
签名值
执行签名
清空
签名值
复制
密钥对生成
EC KEYS
用途
签名(ECDSA)
密钥协商(ECDH)
该选择仅用于切换下方展示的操作面板:服务端生成的 EC 密钥可同时用于签名和密钥协商,不像浏览器 Web Crypto 那样区分用途,切换该选项不影响已生成的密钥
曲线
P-256
P-384
P-521
生成密钥对
公钥(PEM · SPKI)
复制
私钥(PEM · PKCS8)
复制
私钥仅在生成后留在浏览器内存与下方文本框中;执行签名或密钥协商操作时,会通过本站后端接口发送私钥以完成运算(未使用第三方服务);下方签名/验签直接读取上方文本框内容,也可直接粘贴外部生成的 PEM 私钥使用
ECDSA 签名 / 验签
SIGN
签名(原文 → 签名值)
验签(原文 + 签名值 → 结果)
摘要算法
SHA-256
SHA-384
SHA-512
编码格式
Base64
Hex
原文
签名值
执行签名
清空
签名值
复制
ECDH 密钥协商 Demo
KEY AGREEMENT
分别生成「甲方」「乙方」两套 ECDH 密钥对(私钥保存在本机内存中,推导时会发送给本站后端接口参与运算),再用「甲方私钥 + 乙方公钥」与「乙方私钥 + 甲方公钥」分别推导,验证双方能算出同一份共享密钥 —— 这正是密钥协商的核心原理
甲方公钥(PEM · SPKI)
生成甲方密钥对
乙方公钥(PEM · SPKI)
生成乙方密钥对
推导共享密钥
解析输入
DECODE
填入示例
清空
0 字符
三段着色预览会显示在这里 ——
Header
.
Payload
.
Signature
Header
ALG · TYP
复制
Payload
CLAIMS
复制
签名
SIGNATURE
HS256 签名校验
VERIFY
Secret(密钥,UTF-8 文本)
验签
🔓
粘贴一段 JWT,即可查看 Header / Payload 解码结果、过期状态与签名信息
签发 / 编码
ENCODE · HS256
Header(JSON)
{"alg":"HS256","typ":"JWT"}
Payload(JSON)
密钥(Secret,UTF-8 文本)
生成 Token
Token
复制
使用说明
HOWTO
解码
— 按
.
拆分 JWT 三段,Base64URL 解码 Header / Payload 为 JSON 并格式化显示,全程本地计算,不上传服务器
过期检测
— 自动识别 Payload 中的
exp
/
iat
/
nbf
,换算为本地时间并判断是否已过期 / 尚未生效
HS256 验签
— 输入签发时使用的密钥,基于纯 JS 实现的 HMAC-SHA256(与「哈希摘要」共用同一套哈希原语)校验第三段签名是否匹配,不依赖
window.crypto.subtle
,HTTP 环境下也可正常使用;仅支持
alg
为
HS256
的 JWT
签发
— 编辑 Header / Payload JSON 与密钥后点击「生成 Token」,即可用同样的 HMAC-SHA256 签出一枚完整 JWT,可直接复制到上方「解析输入」验证闭环
SHIJINZE DEVTOOLS · 哈希摘要 / JWT 纯前端离线运行;AES / RSA / ECC 经本机后端计算,不做持久化存储