作業メモ
開発でID・エンコード・ハッシュを扱う前の確認手順
ID、エンコード済み文字列、ハッシュ値は見た目が似ていても役割が違います。作るのか、戻すのか、照合するのかを先に決めます。
ページ更新日:
生成・復号・照合を分ける
何をしたいかを間違えると、開くツールも確認結果の意味も変わります。
IDは識別子として扱う
UUIDやULIDはレコード識別に使い、暗号化やハッシュの代わりにはしません。
Base64とハッシュは別物
Base64は戻せる表現変換、SHA-256は元に戻す用途ではないハッシュです。
次にやること
1. IDを生成するか読むかを分ける
新規IDが必要なのか、既存IDの形式や時刻を確認したいのかを決めます。
- UUID・ULID生成
新しいUUIDやULIDを作ります。
- UUID・ULIDデコーダー
既存IDの形式や時刻情報を確認します。
- ULIDデコーダー
ULIDから生成時刻を確認します。
2. エンコード文字列を読む
URLやBase64の変換結果を、元の文字列と分けて確認します。
- Base64エンコード・デコード
Base64文字列を変換して確認します。
- URLエンコード・デコード
URL中の日本語や記号を確認します。
- JWTデコーダー
JWTのHeaderとPayloadを展開します。
3. ハッシュと構造データを確認する
照合用のハッシュと、JSONとして読む値を混同しないようにします。
- SHA-256 ハッシュ生成
文字列から照合用のハッシュ値を作ります。
- JSON整形
デコード後のJSON構造を確認します。
- JWT期限チェッカー
expクレームの期限を確認します。
詰まりやすい場面
- ログやAPIレスポンスに出てきた文字列の種類を見分けたいとき
- UUIDやULIDを新規生成するか、既存値を読むか迷うとき
- Base64、URLエンコード、ハッシュ値を同じ感覚で扱ってしまいそうなとき
具体例と判断基準
よくある失敗例
Base64を暗号化として保存する
Base64は可逆な表現変換で、秘密保持にはなりません。
URL encode後の値を元IDとして比較する
encodeされた表示と元文字列を分け、比較前にどの表現を正本にするか決めます。
hashから元データを戻せると思う
hashは一致確認向けで、暗号化の復号とは目的が違います。
入力・作業サンプル
判断表
UUID/ULID=識別子、URL encode=転送表現、Base64=バイト表現、SHA-256=一方向hash、encryption=鍵を使う別工程。
比較例
同じ設定ファイルの一致確認では、文字コード・改行・末尾空白をそろえた上でSHA-256を比較します。
before
ID、token、Base64、URL encode、SHA-256をすべて『暗号化した値』と呼び、秘密を貼り付けて試す。
after
識別子/表現変換/一方向ダイジェスト/暗号化を分類し、可逆性・秘密性・URL安全性・比較目的を記録する。
この順番で見る理由
目的と可逆性を先に分類しないと、秘密でない変換を安全対策として採用したり、比較したい値を変換で壊したりするためです。
迷ったときの判断基準
元に戻す必要がある
URL/Base64のencode/decodeは表現変換に使えますが、秘密保持には使いません。
一致だけ見たい
SHA-256等で同じ入力かを比べます。秘密のパスワード保存方式の選定には汎用hash生成を使いません。
IDを調べたい
生成、形式検証、version/variant、埋め込み時刻のどれかで専用IDツールを選びます。
関連ツールを使う流れ
- 分類: 可逆か、一致確認か、識別子かを決めます。
- 前処理: 文字コード・改行・空白とURLの対象範囲を確認します。
- 実行と照合: 出力を期待値と比較し、秘密を共有ログへ残しません。
秘密情報や実運用トークンを入力せず、検証用ダミー値で確認してください。
作業を止めて確認する条件
- API key・password・本番token・個人情報を貼ろうとしている
- 暗号化が必要なのにBase64やhashで代用しようとしている
- 文字コードや改行条件が不明なhashを比較している
ツールを使わない判断
言語・フレームワークの標準ライブラリ、KMS、認証基盤が指定されている場合はその実装を使い、ブラウザツールの出力を本番秘密管理へ流用しません。
対象外: 暗号化・鍵管理・パスワード保存方式・ID一意性・真正性の保証。
最終チェックリスト
- ID・encode・hash・encryptionを区別した
- 可逆性と秘密保持の要否を確認した
- 文字コード・改行・空白・URL対象範囲をそろえた
- 秘密値を入力・共有・ログ保存していない
まず開くツール
各段階で最初に開くものだけを並べています。
必要なら見るページ
用語や周辺ツールが必要なときだけ使います。
- データ変換・開発カテゴリ
ID、エンコード、JSON、正規表現の周辺ツールを見たいとき。