APIキー・パスワード除去ツール

ソースコードや設定ファイルから、APIキー・トークン・パスワード・秘密鍵・ID・ランダムな文字列を自動で見つけて置き換えます。置き換えた箇所はひと目で分かり、ZIPやフォルダもまとめて処理できます。処理はすべてブラウザ内で行い、サーバーには送信しません。
入力した内容はサーバーに送信しません テキストやファイルは、お使いのブラウザの中だけで処理します。ページを開いたあとにネットワークを切っても使えます。
設定
検出の強さ

追加で置き換える
置き換え後の文字列

{type} は種類(API_KEY など)、{n} は番号(同じ値は同じ番号)、{len} は元の文字数になります。

例:

指定した文字列も置き換える

社名・サーバー名・個人名など、自動では見つからない文字列を指定できます。置き換え後を省略すると、上の設定で置き換えます。

保存すると、このブラウザに文字列が残ります。パスワードそのものを指定したときは保存しないでください。

保存するファイル名

「.env」のように「.」で始まるファイルは「_masked.env」の名前で保存します。付けない場合、ブラウザによっては先頭の「.」が外れます。

結果

v1.1.0

APIキー・パスワード除去ツールとは

ソースコードや設定ファイルを AI に質問したり、ブログや Q&A サイトに載せたり、ほかの人に渡したりする前に、APIキー・トークン・パスワード・秘密鍵などの見せてはいけない値を自動で探して置き換えるツールです。

置き換えた箇所は [REDACTED:API_KEY] のように種類が分かる文字列になるため、何を取り除いたのかがひと目で分かります。処理はすべてブラウザの中で行い、入力した内容やファイルをサーバーに送信しません。

使い方

  1. 入力する:「テキストを貼り付け」にコードを貼り付けるか、「ファイル・ZIP・フォルダ」にファイルをドロップします。
  2. 確認する:置き換えた結果がすぐに表示されます。色の付いた部分と「置き換えた値の一覧」で、何が置き換えられたかを確認します。
  3. 必要なら元に戻す:置き換える必要のない値は、色の付いた部分か一覧のチェックをクリックして元に戻します。同じ値はまとめて切り替わります。
  4. 使う・保存する:テキストは「コピー」、ファイルは「保存」ボタンで保存します。

見つけられるもの

  • 形式が決まっているキー・トークン:AWS、GitHub、GitLab、Slack、Stripe、Google、OpenAI、Anthropic、Hugging Face、npm、PyPI、Docker Hub、SendGrid、Twilio、Discord、Telegram、Azure、Shopify、DigitalOcean、JWT など
  • 秘密鍵:PEM形式(RSA、EC、OpenSSH、PGP など)、PuTTY形式
  • 名前から判断できる値:password・secret・token・api_key・private_key・salt などの名前が付いた値。.env、YAML、JSON、INI、XML、PHP、Python、JavaScript、Java、Go などの書き方に対応しています。
  • URL・コマンドの中の認証情報:https://user:パスワード@host、?access_token=…、Authorization ヘッダー、curl -u、mysql -p、--password=…、接続文字列の Password=… など
  • ID・ユーザー名:パスワードと組になっているユーザー名(https://ユーザー名:…@host、curl -u、mysql -u、接続文字列の User ID=…、.netrc など)と、username・DB_USER・「ID:」「ユーザー名:」などの名前が付いた値。root や admin も置き換えます。
  • ランダムに見える文字列:名前が付いていなくても、ランダムに生成されたように見える長い文字列(検出の強さが「標準」「強」のとき)
  • 日本語の書き方:「パスワード:xxxx」「暗証番号:1234」など
  • 追加で選べるもの:サービスのID(client_id、tenant_id、AWSのアカウントIDなど)、メールアドレス、IPアドレス、UUID

検出の強さ

強さ置き換えるもの
弱形式がはっきりしたキー・トークン、秘密鍵、URL内のパスワード、password や secret などの名前が付いた値。関係ない文字列を置き換えることはほとんどありません。
標準弱に加えて、key・auth などの名前が付いたランダムな値と、ランダムに見える20文字以上の文字列(16進数は32文字以上)。通常はこれを使ってください。
強標準に加えて、16文字以上のランダムな文字列、記号入りのパスワードらしい文字列、スペースを含む値など。漏れは減りますが、ハッシュ値など関係ない文字列も置き換えやすくなります。

ID・ユーザー名は、弱ではパスワードと組になっているもの(URL・コマンド・接続文字列の中のものと、前後2行以内にパスワードがあるもの)だけを置き換えます。標準では username・DB_USER・「ID:」などの名前が付いた値も、強では login・account などの名前が付いた値も置き換えます。

次のものは、ランダムに見えても置き換えません:画像などの埋め込みデータ(data:〜;base64)、スクリプトの integrity 属性のハッシュ、証明書・公開鍵、パッケージのロックファイル(package-lock.json など)の中身。UUID は「UUID」をオンにしたときだけ置き換えます。

置き換え後の文字列

「文字列にする」では、置き換え後の文字列を自由に指定できます。次の文字は自動で置き換わります。

  • {type}:種類(PASSWORD、TOKEN、API_KEY、SECRET、PRIVATE_KEY、AWS_ACCESS_KEY、GITHUB_TOKEN、RANDOM、USER、SERVICE_ID、EMAIL、IP、UUID、CUSTOM など)
  • {n}:番号。同じ値には同じ番号が付くので、同じキーが複数の場所で使われていることが分かります。
  • {len}:元の値の文字数

「同じ文字数の伏せ字にする」では、元の値と同じ文字数の * などに置き換えます。行の長さや改行の位置が変わりません。

コードの文字列の中に置き換える場合、置き換え後の文字列に引用符(" や ')を入れると、コードとして正しく読めなくなることがあります。

指定した文字列を置き換える

  • 社名、サーバー名、個人名など、自動では見つけられない文字列を追加できます。行ごとに置き換え後の文字列も指定できます(空欄なら上の設定を使います)。
  • 「正規表現」にチェックを入れると、正規表現で指定できます。例:user\d+、/prod-[a-z]+/i
  • 一致した部分の一部だけを置き換えたいときは (?<mask>…) で囲みます。例:host=(?<mask>[\w.-]+) は「host=」を残して値だけを置き換えます。
  • 「大文字と小文字を区別」をオフにすると、ABC と abc を同じものとして扱います。正規表現を /…/i の形で書いた場合も、区別するかどうかはこのチェックに従います。

ファイル・ZIPについて

  • 保存したファイルは、元のファイルと同じ文字コード(UTF-8、Shift_JIS、EUC-JP、UTF-16)・改行コードのままです。置き換えた部分以外は変わりません。
  • ZIPは中のファイルを置き換えたうえで、ZIPのまま保存します。置き換えのないファイルは元のデータをそのまま使います。
  • フォルダを選んだときは、フォルダの構成のままZIPで保存します(空のフォルダは含まれません)。
  • 次のファイルは処理せず、そのまま残します:画像などのバイナリファイル、パスワード付きZIPの中のファイル、ZIPの中のZIP、未対応の圧縮形式のファイル、50MBを超えるファイル。一覧に理由を表示します。
  • 証明書・鍵ファイル(.p12、.pfx、.jks など)がバイナリ形式で含まれているときは、一覧に「要確認」と表示します。必要に応じて削除してください。

注意

  • すべての秘密情報を見つけられるわけではありません。公開・共有する前に、結果を必ず自分で確認してください。
  • 一度公開してしまったキーやパスワードは、このツールで置き換えても安全にはなりません。発行元で無効にして、新しいものを発行してください。

セキュリティについて

  • 入力したテキストやファイルを外部に送る処理は含まれていません。不安な場合は、ページを開いたあとにネットワークを切ってから使ってください。
  • ブラウザに保存するのは設定(検出の強さ・置き換え方など)だけです。「指定した文字列」は、保存をオンにしたときだけ保存します。入力した内容やファイルは保存しません。