ENCRYPTED LINKS

URL Shortner

長い URL を、共有しやすいリンクに。

このブラウザーで暗号化し、作成 API にはハッシュと暗号文だけを送ります。鍵はリンクに含まれます。リンクを知っている人は転送先を開けます。既定では保存期限がありません。有効期限を設定すると、期限後はリンクが開けなくなり、保存データも削除されます。

HTTP / HTTPS・最大1 MiB。通常のリダイレクトでは、64 KiBを超える元 URL を一部のアプリやブラウザーで開けません。

期限は平文で作成 API に送られ、期限後にレコードを削除します。画像 URL の有効期限とは別に設定します。

API の使い方

クライアントで AES-256-GCM 暗号化し、POST /api/shorten に JSON を送信します。本番の画面・作成 API は Cloudflare Access の認証が必要です。平文 URL や鍵を送る形式には対応しません。

{"id":"Base64URL(SHA-256(domain || key))","payload":"Base64URL(version || nonce || ciphertext || tag)","expires":UNIX_SECONDS}

expires は任意です。暗号化前に、クエリ内の Base64URL 値をバイト列に戻して保存容量を約25%減らします(scripts/shorten.mjs と web/crypto.js の packUrl)。

ソース内の scripts/shorten.mjs が暗号化と登録を行います。CLI は CF_ACCESS_TOKEN 環境変数で Access の認証トークンを受け取ります。通常リンクは HTTP 302、画像リンクは画像を直接返します。CLI は --image で画像モードを選べます。