WebAuthn/Passkey凭证解析器
解析 WebAuthn(Passkey)注册(create)或登录(get)返回的凭证 JSON,解码 clientDataJSON、按 W3C 规范逐字节解析 authenticatorData(flags/signCount/公钥),辅助调试无密码登录集成。
使用说明
粘贴 navigator.credentials.create()(注册)或 navigator.credentials.get()(登录)返回结果序列化后的 JSON(需包含 base64url 编码的 clientDataJSON,以及 attestationObject 或 authenticatorData),点击“解析”。
解析结果包括:clientDataJSON(解码后的 type/challenge/origin/crossOrigin);authenticatorData 按 offset 逐字段解析——rpIdHash(32字节)、flags(1字节,展示 UP/RFU1/UV/BE/BS/RFU2/AT/ED 共8个标志位及其含义)、signCount(4字节计数器);如果是注册流程(attestationObject存在)还会解析出 attestedCredentialData 里的 aaguid、credentialId 和 credentialPublicKey(COSE_Key 格式,展示 kty/alg/crv/x/y 或 RSA 的 n/e);如果是登录流程还会展示 signature 和 userHandle(UTF-8解码)。点击“加载注册示例(create)”或“加载登录示例(get)”可以查看两种典型场景的解析效果。
功能介绍
WebAuthn 是 W3C 制定的无密码身份认证标准,Passkey 是其典型应用场景。前端调用 navigator.credentials.create()/get() 得到的凭证对象里,authenticatorData 是一段紧凑的二进制数据,包含了认证器返回的关键信息,直接调试时不易读懂其内部结构。
本工具按 W3C WebAuthn 规范里 authenticatorData 的准确字节布局解析:rpIdHash 位于偏移0长度32字节,flags 位于偏移32长度1字节(8个标志位:bit0 UP用户在场、bit2 UV用户验证、bit3 BE可备份、bit4 BS已备份、bit6 AT含证明凭证数据、bit7 ED含扩展数据,bit1/bit5为保留位),signCount 位于偏移33长度4字节(大端序)。若 AT 标志位为1,会继续解析 attestedCredentialData(aaguid 16字节 + credentialIdLength 2字节 + credentialId + CBOR编码的COSE_Key公钥),内置了一个精简的CBOR解码器专门用于解析COSE_Key结构。
所有解析都在浏览器本地完成,粘贴的凭证数据不会上传。公钥、签名等内容本身不敏感可以安全展示,但请勿粘贴涉及真实用户隐私的完整生产环境凭证数据到不受信任的工具中。