Protobuf 在线解码器 - 原始字节转可读结构
输入Proto定义和Base64编码的protobuf数据,在线解码为JSON,辅助分析二进制通信内容。
UD5工具箱
实时测试键盘事件 · 对比 key / code / keyCode / location 属性
| 按键 | 来源 | event.key | event.code | event.keyCode | event.location | 说明 |
|---|---|---|---|---|---|---|
| 0 | 主键盘 | 0 |
Digit0 |
48 | 0 (标准) | 主键盘数字行 |
| 0 | 小键盘 | 0 |
Numpad0 |
96 | 3 (小键盘) | 小键盘数字键0 |
| 1 | 主键盘 | 1 |
Digit1 |
49 | 0 (标准) | 主键盘数字行 |
| 1 | 小键盘 | 1 |
Numpad1 |
97 | 3 (小键盘) | 小键盘数字键1 · NumLock关→End |
| 2 | 主键盘 | 2 |
Digit2 |
50 | 0 (标准) | 主键盘数字行 |
| 2 | 小键盘 | 2 |
Numpad2 |
98 | 3 (小键盘) | 小键盘数字键2 · NumLock关→ArrowDown |
| 3 | 主键盘 | 3 |
Digit3 |
51 | 0 (标准) | 主键盘数字行 |
| 3 | 小键盘 | 3 |
Numpad3 |
99 | 3 (小键盘) | 小键盘数字键3 · NumLock关→PageDown |
| 4 | 主键盘 | 4 |
Digit4 |
52 | 0 (标准) | 主键盘数字行 |
| 4 | 小键盘 | 4 |
Numpad4 |
100 | 3 (小键盘) | 小键盘数字键4 · NumLock关→ArrowLeft |
| 5 | 主键盘 | 5 |
Digit5 |
53 | 0 (标准) | 主键盘数字行 |
| 5 | 小键盘 | 5 |
Numpad5 |
101 | 3 (小键盘) | 小键盘数字键5 · NumLock关→Clear |
| 6 | 主键盘 | 6 |
Digit6 |
54 | 0 (标准) | 主键盘数字行 |
| 6 | 小键盘 | 6 |
Numpad6 |
102 | 3 (小键盘) | 小键盘数字键6 · NumLock关→ArrowRight |
| 7 | 主键盘 | 7 |
Digit7 |
55 | 0 (标准) | 主键盘数字行 |
| 7 | 小键盘 | 7 |
Numpad7 |
103 | 3 (小键盘) | 小键盘数字键7 · NumLock关→Home |
| 8 | 主键盘 | 8 |
Digit8 |
56 | 0 (标准) | 主键盘数字行 |
| 8 | 小键盘 | 8 |
Numpad8 |
104 | 3 (小键盘) | 小键盘数字键8 · NumLock关→ArrowUp |
| 9 | 主键盘 | 9 |
Digit9 |
57 | 0 (标准) | 主键盘数字行 |
| 9 | 小键盘 | 9 |
Numpad9 |
105 | 3 (小键盘) | 小键盘数字键9 · NumLock关→PageUp |
| + | 主键盘 | + (Shift) |
Equal |
187 | 0 (标准) | 与=共享键位,需Shift |
| + | 小键盘 | + |
NumpadAdd |
107 | 3 (小键盘) | 独立按键 |
| - | 主键盘 | - |
Minus |
189 | 0 (标准) | 与_共享键位 |
| - | 小键盘 | - |
NumpadSubtract |
109 | 3 (小键盘) | 独立按键 |
| * | 主键盘 | * (Shift) |
Digit8 |
56 | 0 (标准) | Shift+8 |
| * | 小键盘 | * |
NumpadMultiply |
106 | 3 (小键盘) | 独立按键 |
| / | 主键盘 | / |
Slash |
191 | 0 (标准) | 与?共享键位 |
| / | 小键盘 | / |
NumpadDivide |
111 | 3 (小键盘) | 独立按键 |
| . | 主键盘 | . |
Period |
190 | 0 (标准) | 主键盘小数点 |
| . | 小键盘 | . |
NumpadDecimal |
110 | 3 (小键盘) | 小键盘小数点 · NumLock关→Delete |
| Enter | 主键盘 | Enter |
Enter |
13 | 0 (标准) | 主键盘回车键 |
| Enter | 小键盘 | Enter |
NumpadEnter |
13 | 3 (小键盘) | keyCode相同(13),靠code/location区分 |
| NumLock | 功能键 | NumLock |
NumLock |
144 | 0 (标准) | 切换小键盘模式 |
event.code 属性。小键盘的数字键 code 以 "Numpad" 开头(如 Numpad0、Numpad1),而主键盘数字键的 code 以 "Digit" 开头(如 Digit0、Digit1)。event.location 属性:小键盘返回 3,主键盘返回 0。不推荐使用已废弃的 keyCode(小键盘96-105,主键盘48-57),因为它在未来可能被移除。
code 始终是 "KeyQ"。key 是 "Q"(大写),而 code 仍是 "KeyQ"。event.code;处理文本输入时使用 event.key。
event.keyCode 和 event.which 已在现代Web标准中被标记为废弃(deprecated)。推荐使用:event.key — 获取键的逻辑值(如 "ArrowUp"、"a"、"Enter")event.code — 获取物理键位标识(如 "ArrowUp"、"KeyA"、"Enter")event.location — 判断键位来源(标准/左侧/右侧/小键盘)keyCode。
event.key 为 "0"~"9"、"+"、"-" 等。event.key 会变化:"Insert""End""ArrowDown""PageDown""ArrowLeft""ArrowRight""Home""ArrowUp""PageUp""Delete"event.code 始终保持不变(如 "Numpad0"),这是区分物理键位的关键。
event.key 都是 "Enter",event.keyCode 都是 13,仅凭这两个属性无法区分。event.code:小键盘为 "NumpadEnter",主键盘为 "Enter"event.location:小键盘为 3,主键盘为 0(或1/2)event.code 或 event.location。
event.location 是一个整数,表示按键在键盘上的物理位置:DOM_KEY_LOCATION_STANDARD:标准键位(几乎所有按键)DOM_KEY_LOCATION_LEFT:左侧修饰键(如左Shift、左Ctrl、左Alt)DOM_KEY_LOCATION_RIGHT:右侧修饰键(如右Shift、右Ctrl、右Alt)DOM_KEY_LOCATION_NUMPAD:数字小键盘区域event.code 和 event.location 的表现是标准化的。keyCode 可能与标准不同getModifierState('NumLock') 支持较晚(Safari 15+)location 可能始终为0event.code 和 event.location 组合判断,兼容性最好。
key 都是 "0"~"9",无需分别处理"Numpad" 开头event.key >= '0' && event.key <= '9' 即可覆盖两种键盘const isNumpad = event.code.startsWith('Numpad');const isDigit = /^[0-9]$/.test(event.key);
event.location 通常为 0,event.code 可能为空字符串或不标准。event.location === 3 来判断移动端的小键盘输入event.key 获取输入值,这是跨平台最稳定的方式input 事件而非 keydown 来处理文本输入
event.code(如 "Numpad0")来替代硬编码的keyCode数值。
输入Proto定义和Base64编码的protobuf数据,在线解码为JSON,辅助分析二进制通信内容。
在线演示Scrypt函数如何将密码转化为安全密钥,可调CPU与内存成本参数,理解现代KDF原理。
设定最小与最大字体规格及视口范围,自动生成CSS clamp() 函数,实现流式排版。
选择单词中字母与放置格子,计算总分,支持双倍/三倍字母词。
生成由易读单词和数字组成的密码短语,大小写清晰,避免混淆字符,方便语音传达或抄写。
上传CSV文件,指定优先排序列和升降序,干净地整理杂乱数据。
设置基础字号后批量转换像素值为em/rem,同时提供反向计算,保证响应式单位准确。
通过PerformanceObserver获取首次绘制(FP)和首次内容绘制(FCP)时间。
集成ASCII/Hex/Base家族/Quoted-Printable/UUencode等多种编码一键互转,支持智能识别与链式解码。
设定根元素字号(默认16px),快速将rem值转换为px或反向,精准控制布局尺寸。
检查比特币地址(Base58/bech32)的格式是否正确,以及校验和是否匹配。
输入密钥和消息,生成基于SHA-256或其他哈希的HMAC签名,验证数据完整性,纯前端WebCrypto。
基于5x5方阵,通过行列坐标转置进行加密,操作简单却难以直接破解。
将深度嵌套的JSON对象转化为用点号或括号分隔的单层键值对,便于数据清洗。
生成一个 Bookmarklet,点击即弹出面板选择预定义设备尺寸,调整当前窗口大小。
指定父元素字号,将em单位的值精确转换为px像素值,同时反向运算,降低响应式疑惑。
上传包含问题和答案的CSV文件,一键生成复习闪卡集,支持按熟悉度分类。
输入两个或多个整数,一键计算它们的最小公倍数,适合学生数学作业与分数通分。
上传疑似隐写图片,提取每个像素的最低位,尝试恢复隐藏的文本或数据。
使用Argon2id算法生成密码哈希,配置内存/迭代/并行度,提升暴力破解难度,前沿安全实践。
输入URL提取OG标签,模拟Facebook/Twitter/LinkedIn卡片显示效果,优化链接分享。
粘贴Content-Security-Policy头,获得逐条解析与安全评分,识别缺失指令与危险源。
实时查看当前域名下所有localStorage键值对,支持编辑、删除和导出,前端调试利器。
随机生成整数数组,逐步展示按低位优先进行的基数排序过程,辅助算法理解。
粘贴JWT,自动Base64解码并显示明文Header和Payload。
通过滑块调节LCP、FID、CLS等指标值,实时显示对应的谷歌核心网页指标评分与颜色。
可视化演示固定窗口、滑动窗口、令牌桶等常见限流算法,实时请求计数与拒绝逻辑。
支持Code128、EAN等常见一维码的摄像头实时解读或从图片识别,显示编码数字。
输入密码和盐值,展示如何通过SHA-256等生成存储的哈希摘要,教育用途。
自定义套餐名、价格、功能列表,生成对比式价格表UI的HTML/CSS代码。