開発者ツール

開発者向けの日常ツール群 — 色の変換、暗号学的ハッシュの生成、Unixタイムスタンプの処理、JWTのデコード。

カラーコンバーター
HEX・RGB・HSL・HSV・CMYK・OKLCHを変換し、パレット生成とコントラスト確認 — ブラウザ内で。
ユーザーエージェント解析ツール
どんなユーザーエージェント文字列からもブラウザー、OS、デバイスを読み取り、自分のUAを確認し、検索エンジンやAIのクローラーを識別できます。
サブネット計算ツール(IPv4・IPv6)
IPv4/IPv6のどんなサブネットでも、ネットワークアドレス、ホスト範囲、マスクを計算し、ネットワークを小さなサブネットに分割できます。
cron式チェッカー(読み解き・次回実行時刻)
どんなcron式もわかりやすい言葉で1フィールドずつ読み解き、次にいつ実行されるかを正確に確認できます。
コード整形・圧縮ツール
HTML、CSS、JavaScript、SQLを整形または圧縮します。言語は自動で検出され、処理はすべてブラウザー内で完結します。
未使用CSS削除ツール
Chromeのカバレッジのエクスポート、またはHTMLとスタイルシートから、ページで使うCSSだけを残します。すべてブラウザー内で動作します。
JWTデコーダー
JSON Web Tokenをローカルでデコードし、シークレットまたは公開鍵で署名を検証。送信は一切ありません。
Unixタイムスタンプ変換
Unixタイムスタンプを読みやすい日時に、またその逆に変換。任意のタイムゾーンと現在時刻に対応。
ハッシュジェネレーター
テキストやファイルのMD5・SHA-1・SHA-256・SHA-512ハッシュ、bcrypt、チェックサム照合 — ブラウザ内で完結。
JSON型定義ジェネレーター(TypeScript・Go・Python)
JSONのサンプルから、TypeScriptのinterface、Goの構造体、Pythonのモデル、C#のクラス、Rustの構造体、JSON Schemaを生成します。

よく使う変換

クリックするだけで、その作業用に設定済みのツールが開きます。

開発者ツール - 色・ハッシュ・タイムスタンプ・JWT

ここは、本来の作業を中断させる小さな変換のためのカテゴリです。デザインから渡された色は HEX で、CSS が欲しいのは HSL。ログの行には Unix タイムスタンプがあり、それが自分のタイムゾーンで何時だったのかを知りたい。API がトークンを返し、その中身を見たい。ダウンロードページに SHA-256 が載っていて、ファイルを確かめなければならない。どれも難しくはなく、どれも手作業では煩わしく、四つともここでアカウントなしに動きます。

このカテゴリにあるもの

ツールできること使う場面
カラーコンバーターHEX・RGB・HSL を相互変換するパレットの表記とスタイルシートが求める表記が違う
ハッシュジェネレーターテキストやファイルの MD5・SHA-1・SHA-256・SHA-512 を計算するダウンロードの検証、二つのファイルの比較、キャッシュキーの生成
タイムスタンプコンバーターUnix タイムスタンプを読める日時に、またその逆に。タイムゾーンをまたいでログ、DB の列、API のレスポンスに日付であるべき数値が入っている
JWTデコーダーJSON Web Token を分解し、ヘッダー・ペイロード・有効期限を表示する認証をデバッグしていてクレームを見たい
未使用CSS削除ツールChromeのCoverageエクスポートやHTMLから、ページで使われているCSSだけを残すテーマやページビルダーが、ページに必要な量よりはるかに多いCSSを読み込んでいる
コード整形ツールHTML、CSS、JavaScript、SQLを整形または圧縮する。SQL方言に対応し、言語は自動で検出バンドル、テンプレート、クエリが読めない1行で届いた、またはコード片をできるだけ小さくしたい
cron式チェッカーcronのスケジュールを1フィールドずつわかりやすい言葉で読み解き、次回の実行時刻をローカル時刻またはUTCで示すジョブが違う時刻に実行される、またはデプロイ前にcrontabの1行が何をするのか確かめたい
サブネット計算ツールIPv4とIPv6のネットワークアドレス、ブロードキャスト、ホスト範囲、マスク、アドレスの種類を示し、ネットワークをサブネットに分割するファイアウォールのルール、VPCの設計、ルーターの設定を書いていて、範囲を正確に合わせる必要がある
ユーザーエージェント解析ツールどんなユーザーエージェント文字列からもブラウザー、エンジン、OS、デバイスを読み取り、検索エンジンやAIのクローラーを特定するログの1行、アクセス解析のレポート、不具合報告に、意味を理解したいユーザーエージェントが含まれている
JSON型定義ジェネレーターJSONのサンプルを、TypeScript、Go、Python、C#、Rustの型、またはJSON Schemaに変換するAPIがJSONを返し、コードにはそのための型付きモデルが必要

色の表記と、HSL を知る価値

HEX と RGB はまったく同じものを別の筆跡で書いているだけです。#4F46E5 は rgb(79, 70, 229) であり、0-255 の三チャンネルを十進ではなく十六進で書いたものです。両者の変換は機械的です。

HSL は本当に別のモデルであり、だからこそ居場所があります。色を色相(色相環上の位置、0-360)、彩度(鮮やかさ、0-100%)、明度(0-100%)で表します。実務上の見返りは明快です。ホバー用に色を 10% 暗くするのは数値一つの変更で済み、関連する色調のパレットを作るのは色相と彩度を固定して明度を歩かせることになります。同じことを HEX でやるなら、三チャンネルを計算し直して勘に頼ることになります。

コントラストがもう一つの理由です。通常サイズで WCAG AA を満たすには、文字は背景に対して 4.5:1 以上のコントラスト比が必要です。自分がどのあたりにいるのかは、十六進コードを睨むより HSL の明度のほうがはるかによく予測できます。

ハッシュ: 何のためにあり、何のためではないか

ハッシュ関数は、任意の入力を固定長の指紋に変えます。同じ入力からは常に同じ出力が出て、一文字変えればまったく別の出力になり、ハッシュから入力へは戻れません。だからハッシュは完全性の検証には正しい道具であり、パスワードの保存には間違った道具です。

アルゴリズム出力状況
MD5128ビットセキュリティ用途では破られている。衝突を意図的に作れる。非セキュリティのチェックサムやキャッシュキーなら問題なし
SHA-1160ビット2017年以降破られている。古いシステムや Git のオブジェクト ID にはまだ見られるが、新規に選んではいけない
SHA-256256ビットファイル検証・署名・証明書における現在の既定
SHA-512512ビット同じ系統でダイジェストが大きい。64ビット環境ではしばしばこちらが速い

日常的な使い道はダウンロードの検証です。サイトが SHA-256 を公開し、受け取ったファイルをハッシュジェネレーターでハッシュ化すれば、二つの文字列は一文字残らず一致するか、しないかのどちらかです。途中で切れたダウンロードも、改竄されたミラーも同じように捕まえます。

ハッシュが向いていないのがパスワードです。パスワードの素の SHA-256 は、ありふれたハードウェアで毎秒数十億回の試行にさらされます。パスワードの保存には、遅く、ソルト付きで、その目的のために作られた関数 - bcrypt、scrypt、Argon2 - が必要です。意図的に高価になっています。上の表のどれかでパスワードをハッシュ化しているなら、それはバグです。ハッシュジェネレーターには、まさにそのための bcrypt タブがあります。選んだコストで bcrypt ハッシュを作成し、保存済みのハッシュとパスワードを照合でき、bcrypt のページからは直接そのタブを開けます。

Unix タイムスタンプとタイムゾーンの混乱

Unix タイムスタンプは 1970 年 1 月 1 日 UTC の午前 0 時からの秒数です。タイムゾーンを持ちません。そしてまさにそれゆえにシステムはこれを使います。曖昧さのない一つの瞬間であり、どの言語でも表示用にローカル時刻へ変換できるからです。十桁の数値は秒、十三桁はミリ秒で、後者は JavaScript の Date.now() が返すものであり、日付が 1970 年や 55000 年に着地する非常によくある原因です。

タイムスタンプコンバーターは双方向に動き、結果を UTC とあなたのローカル時刻の両方で示します。別の地域のサーバーが書いたログを読むときに本当に必要なのは、たいていその比較です。覚えておくとよい日付が二つ。2147483647 は符号付き 32 ビットのタイムスタンプが保持できる最後の秒で、2038 年 1 月にあたります。0 はエポックそのもので、タイムスタンプが 0 だったり日付が 1970 年 1 月 1 日だったりするのは、ほぼ常に値が一度も設定されなかったことを意味します。

JWT を読む

JSON Web Token は、ドットで区切られた三つの URL セーフ Base64 セグメントです。署名アルゴリズムを述べるヘッダー、クレームのペイロード、そして署名。JWTデコーダーはこれを分解し、はじめの二つを読める JSON として表示します。exp と iat は日時に直されており、リクエストが拒否されているときに知りたいのはたいていそこです。

はっきりさせておくべきことが二つ。第一に、ペイロードは暗号化されていません。トークンを持つ者は誰でもすべてのクレームを読めるので、JWT は非公開の情報を入れる場所ではありません。第二に、デコードは検証ではありません。クレームを読めばトークンが何を主張しているかはわかりますが、署名が有効かどうかはわかりません。それに答えられるのは鍵を持つサーバーだけであり、それを確かめるために署名の秘密鍵を貼り付けさせるブラウザツールがあってはなりません。

トークンは有効なあいだ生きた資格情報なので、どこに貼るかが問題になります。このデコーダーは完全にブラウザ内で動きます。JavaScript があなたの端末でトークンを解析し、どこにも送信しません。ネットワークパネルで確認できます。

関連カテゴリ

よくある質問

これらのツールを使うのに何かインストールする必要がありますか?
いいえ。ここにあるすべてのツールはブラウザ内で直接動作します — ページを開いてすぐに使えます。
これらのツールは本番環境で使っても大丈夫ですか?
はい、デバッグ、整形、データの確認といった日常的な作業には適しています。自動化されたワークフローには通常コード内で同等のライブラリを使いますが、これらのツールは一度きりの手動チェックに最適です。
これらのツールを使うと、コードやデータがどこかに送信されますか?
いいえ。LogicUtilのツールは画像変換ツールも含めてすべてブラウザ内で完結するため、コードやデータが端末の外に出ることはありません。