Laravel控制器,React组件或WP Adminify插件代码库中度过了我一周的大部分时间。而在每一个中,实际"编写代码"部分可能是工作的一半。另一半是结缔组织:格式化一个JSON blob a API只是吐回去,解码一个JWT的中间段,看看为什么auth失败,为播种机生成四十个测试UUID,将日志行中的Unix时间戳转换为人类可以读取的东西。
多年来我一直以笨拙的方式做这些--一次性的节点脚本, jq 如果我能记住语法,或者最常见的是一个带有三个广告横幅和一个 cookie 墙的随机实用程序网站。最后一个选项是最终推动我构建的内容 Toolz.dev。太多的那些站点悄悄地将您的输入发布到服务器上,以便浏览器可以在本地完成一项工作,我厌倦了将客户端的位's配置粘贴到陌生人's后端只是为了漂亮地打印它。
本指南是实际的工具包 - 我每天都会保留书签并打开几次的编码工具,每个工具都完全在您的浏览器中运行,因此数据永远不会离开您的机器,并且没有一个要求您注册。 I'将按照我使用它的方式浏览每个工具,它可以实时保存,以及 I've 所犯的错误,因此您不'不必重复它们。
TL;博士: API 的工作, json格式化程序 美化和验证,以及 Base64 转换器 解码令牌和数据 URI。对于模式匹配, 正则表达式构建器 实时测试模式。对于 ID, 用户识别器 批量制作v1/v4/v7。用于调试, 时间戳转换器 将纪元秒变成可读日期,以及 哈希发生器 做MD5/SHA。所有客户端,全部免费。
为什么使用独立工具而不是 IDE 或终端?
我从其他开发人员那里得到了这个问题,它'公平 - VS Code 有扩展,终端也有 jq、 openssl、和 base64 内置。那么为什么要打开浏览器选项卡呢?
诚实的答案是摩擦和上下文。 CLI 工具在您重复运行的脚本中时非常棒。但对于一次性 - "what's 现在就在这个令牌中" - 记住的成本 openssl dgst -sha256 或者得到 jq filter语法权高于任务本身,ide扩展解决了其中的一些,但是他们're绑定到一个编辑器,他们需要安装和配置,其中一半已经't在两年内更新到一个盒子里,在同事'm SSH'd上,或者在我的手机上,那个设置都不存在。
浏览器工具回避了所有它。它做一项工作,准确地暴露了工作所需的选项,并且它'在每个设备上都是一样的。三个I'd调用永久书签是JSON格式化,正则表达式测试和Base64解码 - 其余的是情境性的,但仍然比快速通行证的替代方案更快。
There's也是一个隐私角度,它's的全部原因toolz。dev是浏览器优先的,这里的每个工具都在自己的选项卡中用JavaScript处理您的输入。there's没有上传,没有服务器往返,没有你粘贴的日志。当"input"是一个JWT,其中有一个实时会话时,这很重要 .env file,或者客户记录你're只应该调试。
如何快速格式化和验证 JSON?
JSON是所有事情都会说的语言- REST API,配置文件,日志管道,我触摸的数据库的一半。而原始的JSON,尤其是最小化的响应,是不可读的。这里's是我不断处理的真实形状:
{"users":[{"id":1,"name":"Alice","roles":["admin","editor"],"settings":{"theme":"dark","notifications":{"email":true,"push":false}}},{"id":2,"name":"Bob","roles":["viewer"],"settings":{"theme":"light","notifications":{"email":false,"push":true}}}]}
Bob有没有推送通知找就是逐个字符扫描那个字符。粘贴到 json格式化程序 并且一键成为缩进树。除了美化之外,我最依赖的部分是验证 - 它指向尾随逗号或未转义引文破坏文档的确切行,当 API 向您递送几乎但不完全有效的东西时,这是真正的省时器。
我实际使用的四件事:
- 美化 2 空格、4 空格或选项卡缩进(我使用 2 来匹配 Prettier 默认值)。
- 缩小 在运输有效负载之前剥离空格。
- 验证 带有错误消息,可以命名位置,而不仅仅是"无效的 JSON"。
- 树视图 用于导航深度嵌套响应而不计算括号。
I 早早犯了一个错误,现在警告大家:我曾经"修复"一个配置,通过粘贴到一个格式化程序中,默默地接受JSON5风格的尾随逗号和注释,然后想知道一个小时为什么生产中的严格解析器拒绝了一个好的验证器,让你坚持实际 JSON 规格 (ECMA-404/RFC 8259)-无评论,无尾逗号,双引号键 - 这正是你部署前想要的,对于完整的工作流、格式、转换技巧,我写了一个专用的 JSON 工具指南。
Base64 实际上是做什么的,以及您什么时候需要它?
Base64是每个开发人员都会遇到但很少有人停下来理解直到它咬了他们,它将二进制数据转换为64个字符的ASCII字母表,因此它通过纯文本通道传输而幸存下来,它不是加密,也不是压缩- 它使数据大约大33%- 它只是使字节可以安全地粘贴到文本中。
我在实践中击中了它:
- JWT- 头和有效负载是 Base64url 编码的 JSON。解码中间段以查看声明和到期。
- 数据 URI- 将一个小图标直接嵌入到 CSS 中
data:image/png;base64,...保存 HTTP 请求。 - HTTP 基本授权- 凭据将 Base64 编码到
Authorization头。 - 配置和秘密- 例如,Kubernetes 秘密存储 Base64 编码的值(人们经常误认为这是加密 - 事实并非如此)。
的 Base64 转换器 立即编码和解码:粘贴、选择方向、复制。值得了解的是标准 Base64 和 URL 安全变体之间的区别 RFC 4648- URL 安全交换 +/ 为 -_ 并丢弃填充,这就是 JWT 所使用的。将 JWT 段馈送到一个解码器,该解码器期望标准 Base64 及其'll 扼杀缺失的填充。我解释了算法、URL 安全变体以及捕获的 Unicode 陷阱 btoa() 在充分 Base64 编码指南。
如何在不猜测的情况下构建正则表达式?
正则表达式是工具包中同时最强大、最令人沮丧的东西。语法密集、无情,单个错误放置的量词会改变模式匹配的内容。视觉构建器之所以重要,是因为它将写-测试-失败-重写循环变成实时循环 - 当您输入匹配时,您会看到匹配突出显示。
I've不断验证和重用这些模式:
| 图案 | 比赛 | 例子 |
|---|---|---|
^[\w.%+-]+@[\w.-]+\.[A-Za-z]{2,}$ |
实用电子邮件 | [email protected] |
^https?://[\w\-.]+\.\w+ |
网址 | https://toolz.dev |
^\d{3}-\d{3}-\d{4}$ |
美国电话 | 555-123-4567 |
^(?:(?:25[0-5]|2[0-4]\d|[01]?\d?\d)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d?\d)$ |
IPv4 | 192.168.1.1 |
^#(?:[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ |
六角色 | #4466EE |
^\d{4}-\d{2}-\d{2}$ |
ISO 日期 | 2026-07-11 |
将一个粘贴到 正则表达式构建器放入几个测试字符串,然后切换 g/i/m flags来观看什么变化, I've在这里学到的单最大的一课就是避免灾难性的回溯- 像这样的模式 ^(a+)+$ 看起来无害,但冻结在一个长不匹配的输入上,因为引擎探索了指数数量的路径。that's一个真正的拒绝服务向量,而不是一个好奇心。我深入研究这一点,再加上完整的速查表和特定于语言的怪癖,在 Regex 构建器指南。
您应该生成哪个 UUID 版本?
Universally Unique Identifiers是128位值,你可以在数百万台机器上独立生成,无需协调,仍然相信自己是唯一的,如果你构建任何分布式的东西 - 微服务,离线优先的应用程序,分片数据库 - 你需要他们的捕获是有几个版本,大多数人出于习惯而触及错误的版本。
2026年推荐的简短版本:
- v4(随机)- 122个随机位,无时间、无硬件泄露,当你不't需要订购时的安全默认。
- v1(时间戳 + MAC)-时间排序但泄漏生成机's MAC地址。避免新工作。
- v7(时间排序 + 随机)- 毫秒 Unix 时间戳,后跟随机性,标准化 RFC 9562 (2024)。这是我对新数据库主键的默认设置,因为它在 B 树索引中排序良好,没有 v1 的隐私问题。
的 用户识别器 id单机或散装在任何版本中,一键制作,这正是我在播种表格时想要的,我学到的一件事是昂贵的方法:将UUid存储为 VARCHAR(36) 而不是本地人 uuid/BINARY(16) type 将存储加倍,每一次索引比较都变慢 在一个数百万行的表上 that's 不是舍入错误 版本的完整细分,数据库存储,v7-vs-自动增量决策 在 UUID 生成器指南。
如何在 Unix 时间戳和可读日期之间进行转换?
Time 是编程最容易出错的单一领域,我说,作为一个因为我混淆了秒和毫秒而发出了错误的人,服务器日志说 Unix epoch,JavaScript 说毫秒,REST API 说 ISO 8601,电子邮件标头说 RFC 2822。用手在它们之间进行转换,这就是你最终获得一千倍的收益的方式。
| 格式 | 例子 | 你在哪里看到的 |
|---|---|---|
| Unix 时代(秒) | 1783929600 |
服务器日志,大多数 API |
| Unix 时代 (ms) | 1783929600000 |
JavaScript,java |
| ISO 8601 | 2026-07-11T00:00:00Z |
REST API,JSON |
| RFC 2822 | Sat, 11 Jul 2026 00:00:00 +0000 |
电子邮件标题 |
的 时间戳转换器 timezone 支持来处理所有这些,这是我在日志行中有一个裸数字的那一刻打开的 值得了解:经典的 32 位签名 Unix 时间戳在 2038 年 1 月 19 日溢出("Y2K38"问题),这就是为什么任何存储时间的东西现在都应该使用 64 位整数,如果你每天处理日志,请保持这个固定。
YAML、散列和格式转换呢?
这三个人使日常套装更加圆满,尽管我使用的次数少于头条新闻。
山药 是 Kubernetes、Docker Compose 和 GitHub Actions 的配置语言,其缩进敏感性使其脆弱 - 一个杂散选项卡(YAML 禁止缩进选项卡)或未引用的选项卡 no 被解析为布尔值将破坏部署。 YAML 验证器 立即抓住这些,并且 XML 到 JSON 並 JSON 到 YAML 当您're 在系统之间移动配置时,转换器会处理格式洗牌。
散列 是为了诚信,而不是为了保密。我用的是 哈希发生器 根据已发布的校验和验证下载的文件,或构建内容哈希缓存密钥。重要的规则:MD5 和 SHA-1 对于非安全校验和没问题,但对于攻击者可能造成冲突的任何情况都将被破坏 - 在那里使用 SHA-256 或更好。
| 算法 | 输出 | 用它来 | 安全 |
|---|---|---|---|
| MD5 | 128 位 | 校验和、缓存键 | 为了安全起见而损坏 |
| 沙-1 | 160 位 | 传统兼容性 | 弃用 |
| SHA-256 | 256 位 | 签名、诚信 | 安全 |
| SHA-512 | 512 位 | 高安全性哈希 | 安全 |
格式转换-在JSON,CSV,YAML和XML之间移动数据 - 在I'm将API's输出输入电子表格或反向时不断出现。Toolz。dev有 json to csv、 CSV 转 JSON的,以及上面的XML/YAML转换器,其中一个是警告:CSV can't表示嵌套结构,所以任何深度嵌套数据的JSON-to-CSV都是有损的,需要先进行平坦化,在转换一个大导出之前,始终先对一个小样本进行测试。
真正的多工具工作流程是什么样的?
Tools在你链的时候得到了大部分的价值,因为真正的调试很少是一步,上个月的一个具体例子,调试一个token被拒绝的原因:
- 从失败的请求标头复制 JWT 并将其分割到点上。
- 将中间(有效负载)段粘贴到 Base64 转换器 要解码它 - 记住它's URL 安全 Base64。
- 将生成的 JSON 放入 json格式化程序 阅读这些主张。
- 拿走了
exp值(一个unix时间戳),并运行它通过 时间戳转换器-这表明令牌已经提前四个小时过期了发卡服务器上的时钟偏差。以分钟为单位修复,而不是下午添加调试日志记录和重新部署。
That's的模式:每个工具做一件事,一个的输出给下一个,因为它都运行客户端,所以那个令牌数据都没有离开过我的笔记本电脑,这正是你想要的东西时're调试是身份验证。
保持快速操作的一些习惯:在您最常触摸的五个工具上添加书签(toolz。dev 也会显示您最近使用的工具),依靠标准剪贴板快捷键,并始终验证配置、清单和模式 之前 部署 - 验证者捕获的语法错误需要几秒钟的时间;生产过程中遇到的相同错误需要一个下午的成本。
常见问题
Web开发人员最必备的编码工具是什么?
I'd给任何web开发人员的核心集是JSON格式化程序和验证器,Base64编码器/解码器,正则表达式测试器,UUID生成器,哈希生成器,时间戳转换器,这些覆盖了绝大多数非写代码任务,这些任务填满了正常的一天- 检查API响应,解码令牌,生成测试数据,读取日志,其他一切都是情境性的。
基于浏览器的编码工具对于令牌和密钥等敏感数据是否安全?
这完全取决于工具是在浏览器中还是在服务器上处理数据。客户端工具就像上面的工具一样 Toolz.dev javascript 在自己的选项卡中运行,因此您的输入永远不会在任何地方上传或记录。在粘贴任何敏感内容之前 - 一个 JWT,一个 API 密钥,一个 .env value - 进入任何在线工具,确认's客户端,如果工具要求你"上传"或者在你点击进程时显示网络请求,请将数据视为暴露。
JSON 格式化程序和 JSON 验证器有什么区别?
A验证器回答一个问题 - 这个可解析的JSON是,是或否 - 如果答案是否,它会告诉你解析失败的行和列 一个格式化程序重新打印具有一致缩进的有效JSON,这样人类就可以读取它。在实践中他们're相同的操作:格式化程序必须解析输入才能漂亮地打印它,所以任何像样的都报告语法错误作为副作用。在请求被拒绝时达到验证器's错误消息,在响应不可读时格式化程序's输出。
如何安全地解码 JWT?
使用运行客户端的解码器,并且永远不要粘贴 a 活 production令牌到任何你所拥有的't验证。a JWT's头和有效负载是Base64url编码的,而不是加密的-任何拥有令牌的人都可以读取声明,这就是为什么令牌本身是秘密解码可以读取 exp、 iss的,以及调试时的声明,验证签名是一个单独的步骤,需要签名密钥,并且该密钥永远不应该离开你的服务器。
如何将 Unix 时间戳转换为可读日期?
UTC 和本地区域中将数字粘贴到时间戳转换器中并读取日期,唯一真正的陷阱是单位:十位数字是秒(Unix 约定,以及大多数后端发出的),而十三位数字是毫秒(JavaScript 约定)。将毫秒输入秒解析器,然后您将落在 55,000 年左右的某个地方 - 一个错误'一旦您'已经看到一次,并且第一次感到困惑。
这些工具与 jq 和 openssl 等 CLI 实用程序相比如何?
CLI工具更强大,可编写脚本,对于任何生活在脚本中的重复,他们赢了浏览器工具赢的一次性,交互式工作:那里's没有什么可安装的,没有语法要记住,他们在任何机器或手机上都使用 - jq pipelines中,当我只需要目光一击一个响应时,浏览器格式化程序。他们'是互补的,而不是竞争对手。
我可以离线使用这些工具吗?
们最初需要一个连接来加载页面,但由于处理本身运行客户端,实际工作不't在加载后依赖于服务器,如果您的连接在会话中段下降,一些工具会继续工作,为了保证离线使用,Progressive Web App安装或桌面构建是更可靠的路线。
为什么使用浏览器工具而不是 IDE 扩展?
Browser工具与编辑器无关,需要零设置,因此它们'在同事上可用's机器,远程服务器或您的手机上 - 在安装和配置IDE及其扩展的任何地方't。它们're非常适合快速任务和实用程序您的编辑器只是没有't有一个很好的插件,当任务是您每天在一个编辑器内执行几十次时,IDE扩展更好。
2026年我应该默认使用哪个UUID版本?
对于新的数据库主键,UUID v7 - it's 有时间排序,以实现良好的索引性能,同时保持全球唯一性,并且 it's 现在在 RFC 9562 中标准化。当您特别想要不可预测性时,例如应该可以猜测的标识符。对于任何新内容,请避免 v1,因为它会泄漏生成机 's MAC 地址。
Base64是一种加密形式吗?
No,而把它当作一个是常见且危险的错误,Base64是一种可逆编码,任何人都可以立即解码-它的存在是为了使二进制数据安全地作为文本传输,而不是隐藏Kubernetes的秘密和Basic Auth头使用Base64,但那提供了零机密性;任何真正的秘密都需要在上面进行实际加密。
简短版本
Right的小工具将两分钟的杂务变成两秒钟的杂务,在一周内,这些秒加起来可以追溯到真实的几个小时后。从格式化JSON响应到解码令牌,测试正则表达式或读取时间戳,这些都是我真正达到的实用程序- 不是因为它们're聪明,而是因为它们让开了。
这里的一切都继续存在 Toolz.dev、为了隐私和速度而完全在浏览器中运行,并且从不要求您注册。从开始 json格式化程序 並 正则表达式构建器,然后浏览全套 编码工具- 有 600 多种免费工具,涵盖编码、文本、PDF 和图像工作,可在您需要时等待。



