例えば、Basic認証のパスワードを忘れたとする。

でもFirefoxはパスワードを覚えている場合の話。

例えば、持っているいかがわしい画像をSubversionレポジトリ(httpアクセス可)で管理している友達がいるとして、彼が僕の部屋に遊びに来たときに、そのBasic認証で制限しているレポジトリへのパスを教えてもらったとします。その場でいかがわしい画像レポジトリのパスワードをメモを取るのは恥ずかしいので、さりげなくチェックボックスをONにして一旦ブラウザに覚えさせます。

でも、その彼が帰ってから、しばらくしてブラウザ以外の別のSubversionクライアントでそのレポジトリにアクセスしたくなってきてもブラウザが送っているパスワードは"****"と表示されてしまって見えない。ブラウザは情報を覚えているからアクセスできるんだけど、Subversionクライアントでまとめてダウンロードができません。

さて、どうするか。

きっとしかるべきところにログインの情報は保存されているのですが、探すよりも実際にサーバに送っている情報を見た方がはやそうです。

ブラウザがBasic認証のためにサーバへ送っている情報はFirefoxのLiveHTTPHeadersというプラグインで見ることができます。
その中で

Authorization: Basic Z3Vlc3Q6c2FtcGxl

という行があったら"Z3Vlc3Q6c2FtcGxl"の部分をデコードすることでブラウザがどんな情報を送っているかがわかります。

base64エンコードは暗号化ではなくただの符号化ですので、簡単に復号できます。perlが動くコマンドライン上で

% echo -n 'Z3Vlc3Q6c2FtcGxl' | perl -MMIME::Base64 -ne 'print decode_base64($_)'
guest:sample

こうして、ユーザ名guest、パスワードsampleという情報が送られていることがわかります。このユーザ情報を利用して、Subversionレポジトリにアクセスすることができます。

base64


参考:HTTP クライアントを作ってみよう(5) - Basic 認証編 -
僕の環境ではbase64もopensslもnkfも入っていなかったのでperlでやりました。