UndocumentedGoodness

in

CocoaDevのUndocumentedGoodnessというトピックで、キーチェーンで新しくパスワードを作成する際に使われているPasswordAssistantPanelを使っちゃおうっていうTIPSが紹介されています。この「パスワードアシスタント」はキーチェーンアクセスで「新規パスワード項目」を作成するとき使うツールなんですが、

  • 英単語混じり
  • 文字と数字
  • 数字のみ
  • ランダム
  • FIPS-181準拠

といったルールを選択することでそのルールにあったでパスワードを自動生成してくれてしかも強度まで表示してくれるすぐれものです。忙しい日々テキトーなパスワードを考えるのすら面倒な僕には重宝しそう。

手順はCocoaDevの記事にもあるのですがclass-dump(このツールもまた面白いです)でSecurityInterface.FrameworkのダンプからSFPasswordAssistantInspectorController.hを作成して、showPasswordAssistantPanel:を呼び出すだけ。

- (id)init
{
  if (self = [super init])
    {
      paic = [[SFPasswordAssistantInspectorController alloc] init];
    }
  return self;
}
- (void)awakeFromNib
{
  [paic setBaseWindow:[self window]];
  [paic setNewPasswordField:newPassword];
}
- (IBAction)open_passwordassistant:(id)sender
{
  [paic showPasswordAssistantPanel:self];
}

たったこれだけで、アプリケーションのテキストフィールドに作成したパスワードを設定してくれます。(CocoaDevの記事ではパスワードフィールドをアウトレット接続するよう書いてありましたが作成したインタフェースをみたらちゃんとセッターメソッドが定義されているのででアウトレット接続は使わないほうがいい気がします。)アプリケーションでパスワードを作成する必要のある場合などに使えますね。UnDocumentedなだけにいつ使えなくなっても仕方がないですが...できればverifyPasswordあたりの使い方やwindowDidEndSheet:を引っかけるところまで踏み込んでみたかったのですがキーチェーンアクセスもでもverifyPasswordを使っていないし、単純に継承しただけではうまくいきませんでした。

こういうドキュメントにない機能を探し出して使っちゃう人って、好きなんでしょうねぇ。世の中気の利いた人もいるものです。

スクリーショット

添付サイズ
passwdassistant.zip61.54 KB

この記事のトラックバックURL:

http://hippos-lab.com/blog/trackback/310

返信