設定ファイル用パスワードエンコーダー

パスワードを、JSON、YAML、TOML、XML、Javaの.properties、INI、URL接続文字列、SQLリテラル向けに正しくエスケープし、そのまま読み戻せるようにします。

結果を設定の値の部分に貼り付けてください。YAML は可能ならシングルクォート、TOML は可能ならリテラル文字列を使います。URL 形式では A–Z a–z 0–9 - . _ ~ 以外の全バイトをパーセントエンコードし、SQL ではシングルクォートを二重にします(標準 SQL。バックスラッシュエスケープが有効な MySQL では \ も二重にする必要があります)。

すべてブラウザ内で実行されます。データがアップロードされることはありません。

設定ファイル用パスワードエンコーダーとは?

パスワードを貼り付けるだけで、8つの設定形式(JSON、YAML、TOML、XML、Javaの.properties、INI、URL/接続文字列、SQL文字列リテラル)向けに正しくエスケープされた値が一度に得られます。各出力は、元の値とまったく同じに読み戻されます。

設定ファイル用パスワードエンコーダーの使い方

  1. パスワード欄にパスワードを入力します。
  2. 一覧から必要な形式を探します。
  3. コピーボタンで、エスケープされた値をコピーします。
  4. 設定の値の部分として貼り付けます。

例

入力
p@ss'w"rd$1
出力
JSON "p@ss'w\"rd$1"
YAML 'p@ss''w"rd$1'
TOML "p@ss'w\"rd$1"
XML p@ss'w"rd$1
URL p%40ss%27w%22rd%241
SQL 'p@ss''w"rd$1'

設定ファイル用パスワードエンコーダーを使うべき場面

シークレットを設定ファイルや接続文字列に手作業で入れるときに使います。本番のシークレットには、シークレットマネージャーか環境変数を使うことをおすすめします。

設定ファイル用パスワードエンコーダーの仕組み

JSONはJSON.stringifyを使います。YAMLはシングルクォートのスカラー(' は '')を使い、制御文字がある場合のみダブルクォートにします。TOMLは可能ならリテラルの 'string'、そうでなければ \" \\ \uXXXX のエスケープを使う基本文字列にします。XMLは & < > " ' とタブ・改行を文字参照にエスケープします。.propertiesは \、=、:、#、!、先頭のスペース、非ASCII文字を \uXXXX にエスケープします。URLのuserinfoは、A–Z a–z 0–9 - . _ ~ 以外のすべてのバイトをパーセントエンコードします。SQLはシングルクォートを重ねます。INIには標準のエスケープがないため、" や改行を含む値は安全でないと報告されます。

一般的な使用例

  • @や:を含むパスワードのPostgreSQLやMongoDBの接続URLへの記入
  • KubernetesやAnsibleのYAMLファイルへのシークレットの追加
  • Springのapplication.propertiesでのパスワードのエスケープ
  • SQL文によるテストユーザーの挿入

よくある質問

接続文字列でパスワードをURLエンコードする必要があるのはなぜですか?

@、:、/、#などの文字はURLで特別な意味を持ちます。エンコードされていない@があると、パーサーがパスワードの一部をホストとして扱ってしまいます。

SQLリテラルはインジェクションに対して安全ですか?

標準SQLとして正しいエスケープですが、アプリケーションのコードでは、常にパラメータ化クエリを使ってください。

INIが一部の値で「安全でない」と表示されるのはなぜですか?

INIにはダブルクォートや改行をエスケープする標準的な方法がなく、パーサーごとに挙動が違うため、ツールは推測せずに拒否します。

他のカテゴリを見る