<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>在线工具箱 on</title><link>https://clannad.icu/tools/</link><description>Recent content in 在线工具箱 on</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><atom:link href="https://clannad.icu/tools/index.xml" rel="self" type="application/rss+xml"/><item><title>cURL 转 Python requests</title><link>https://clannad.icu/tools/curl-to-requests/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://clannad.icu/tools/curl-to-requests/</guid><description>使用方法 粘贴一条以 curl 开头的命令，例如浏览器开发者工具 Network 面板中“Copy as cURL”复制的请求。 点击“转换”，在右侧查看生成的 Python requests 代码。 点击“复制”，检查请求地址、请求头、认证和请求体，再放入已安装 requests 的 Python 环境中运行。 页面只生成代码，点击“转换”不会向命令中的目标地址发送请求。运行生成的 Python 代码才会发出 HTTP 请求；Requests 的安装和 API 用法见 官方快速入门。
示例：带请求头的 GET 输入：
curl 'https://example.com/api/messages?limit=2' -H 'Accept: application/json' 结果会保留 URL 和 Accept 请求头，并生成 requests.get(...) 调用。这里的 example.com 是示例地址，可替换为你实际需要访问的接口。
示例：发送 JSON 的 POST 输入：
curl 'https://example.com/api/messages' \ -H 'Content-Type: application/json' \ --data-raw '{&amp;quot;name&amp;quot;:&amp;quot;CLANNAD&amp;quot;,&amp;quot;favorite&amp;quot;:true}' \ --max-time 10 输出：
import requests url = &amp;quot;https://example.com/api/messages&amp;quot; headers = { &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;, } payload = { &amp;quot;name&amp;quot;: &amp;quot;CLANNAD&amp;quot;, &amp;quot;favorite&amp;quot;: True, } response = requests.</description></item><item><title>JSON 格式化工具</title><link>https://clannad.icu/tools/json-formatter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://clannad.icu/tools/json-formatter/</guid><description>使用方法 将待处理的数据粘贴到“原始 JSON”输入框。 点击“格式化”，在结果区查看两空格缩进和语法高亮后的 JSON。 点击“复制”获取结果；如果输入不完整或语法有误，输入框下方会显示解析错误，修改后可重新格式化。 解析和格式化在浏览器中完成。输入框支持标准 JSON，也支持 JSON5 的单引号、未加引号的标识符键、注释和尾随逗号，语法说明可参阅 JSON5 官方文档。
示例：格式化标准 JSON 输入：
{&amp;quot;name&amp;quot;:&amp;quot;CLANNAD&amp;quot;,&amp;quot;episodes&amp;quot;:23,&amp;quot;favorite&amp;quot;:true} 输出：
{ &amp;quot;name&amp;quot;: &amp;quot;CLANNAD&amp;quot;, &amp;quot;episodes&amp;quot;: 23, &amp;quot;favorite&amp;quot;: true } 示例：常见 Python 字典写法 输入中的 True、False、None 会转换为 JSON 的 true、false、null；数字键会转换为字符串键。
{'name': 'CLANNAD', 'favorite': True, 'note': None, 1: '第一季'} 输出：
{ &amp;quot;1&amp;quot;: &amp;quot;第一季&amp;quot;, &amp;quot;name&amp;quot;: &amp;quot;CLANNAD&amp;quot;, &amp;quot;favorite&amp;quot;: true, &amp;quot;note&amp;quot;: null } 适用范围 这里处理的是数据字面量，不会执行 Python 或 JavaScript 表达式，也不支持 Python 的元组、集合和函数调用。格式化会移除注释、统一引号与缩进，并可能调整数字键的顺序。
数字使用 JavaScript 数值精度；需要完整保留的长整数编号应使用字符串。JSON5 中的 NaN、Infinity 经标准 JSON 序列化会成为 null，因此不适合用本工具无损保存这些特殊数值。</description></item><item><title>TOTP 在线验证码生成器</title><link>https://clannad.icu/tools/totp/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://clannad.icu/tools/totp/</guid><description>TOTP 验证码工具使用方法 将已有的 Base32 密钥粘贴到输入框。密钥默认隐藏，需要核对时可点击“显示密钥”。 工具立即生成当前的 6 位动态验证码，并显示本轮剩余时间。 点击“复制验证码”，将结果粘贴到对应服务的两步验证输入框。 每 30 秒自动更新一次。使用完毕后点击“清空”；离开工具时也会清除页面内的密钥和结果。 输入支持大小写字母、空格和合法的末尾 = 补位。工具会忽略空格并统一按 Base32 解码，不接受账号密码、恢复码或整段 Python 代码。
与 PyOTP 的兼容方式 此工具使用 HMAC-SHA1 算法、6 位数字和 30 秒周期，对应以下 Python 调用的默认设置：
import pyotp # 公开测试密钥，仅用于演示，不要用于真实账户。 secret = &amp;quot;GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ&amp;quot; print(pyotp.TOTP(secret).now()) 在相同密钥、相同时间步内，网页与 PyOTP 会生成相同的验证码。验证码可能以 0 开头，复制时会保留完整的 6 位数字。参数说明见 PyOTP 官方文档。
公开测试示例 以下示例来自 RFC 6238 的 SHA-1 测试数据，按本工具的 6 位设置保留结果末尾六位：
Base32 密钥：GEZDGNBVGY3TQOJQGEZDGNBVGY3TQOJQ Unix 时间：59 秒（1970-01-01 00:00:59 UTC） 6 位验证码：287082 页面始终使用当前设备时间，今天粘贴这段公开密钥时，显示的结果会随当前时间变化，不会固定为 287082。该固定时间样例仅用于对照算法测试，相关标准见 RFC 6238。</description></item><item><title>Unix 时间戳转换工具</title><link>https://clannad.icu/tools/timestamp/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://clannad.icu/tools/timestamp/</guid><description>使用方法 输入 Unix 时间戳，选择“自动识别”“秒”或“毫秒”，结果会随输入更新。 按需选择时区，例如 Asia/Shanghai、UTC，或输入 browser 使用浏览器本地时区。 查看 Unix 秒、毫秒、ISO 8601、所选时区的时间和相对时间，点击对应“复制”按钮获取结果。 也可以修改日期与时间，将该时区下的本地时间反向转换为时间戳；“填入当前”会使用当前时刻。 Unix 时间戳以 UTC 的 1970 年 1 月 1 日为起点；切换时区会改变同一时刻的显示方式。JavaScript 日期使用毫秒表示时间，相关背景见 MDN Date 文档。
示例：秒、毫秒与时区 选择时区 Asia/Shanghai，输入以下任一数值，都表示同一个时刻：
1704067200 （秒） 1704067200000 （毫秒） 两行仅用于对照；在单个转换的输入框中，每次粘贴一个数值，不包含括号内的单位说明。
预期结果：
输出项 结果 Unix 秒 1704067200 Unix 毫秒 1704067200000 ISO 8601 2024-01-01T00:00:00.000Z Asia/Shanghai 2024-01-01 08:00:00 UTC+08:00 UTC 2024-01-01 00:00:00 UTC+00:00 时间戳 0 对应 1970-01-01T00:00:00.</description></item></channel></rss>