パスワードクラック
別の例では、アルファベットと数字からなる Windows LAN Manager パスワードを二、三分で解析してしまうものもある。非常に脆弱なパスワードハッシュ法を使っていた過去の LAN Manager の場合は、さらに時間が短縮される。Windows Vista/Server 2008 よりも前の Windows では、後方互換のためパスワードの計算と保管に LAN Manager ハッシュを標準で使っていた。
事前計算と似た手法に、いわゆるメモ化がある。これは複数パスワードの解析を、一個分の解析コストで済ませるために使われる。パスワードの暗号化は、記憶済みハッシュの比較よりもずっと時間がかかるため、一度暗号化したパスワードの内容は記憶しておき、効率的な探索アルゴリズムを使って各々暗号化したパスワードと比較するのである。無論、この2つの手法は組み合わせることもできる。時間と空間のトレードオフを考慮した攻撃手法は、個別に解析するより短い時間で複数パスワードを同時に解析するよう、作り変えることができる。
保存したパスワードを保護するにあたり、設計の悪いパスワードハッシュ法をシステムが使っている場合、適切に考えられたパスワードであろうとも、攻撃者はそれを割り出す脆弱性を突くことができる。一例として、Microsoft Windows XP およびそれ以前のバージョンが標準で使っている、14文字以下でパスワードを保存するLMハッシュが挙げられる。LMハッシュはパスワードを全て大文字に変換し、それを 2 個の 7 バイト列に分け、別々にハッシュ値を求める。つまり、それぞれを個別にアタックすることができる。
MD5・SHA-512PA・SHA-1・RIPEMD-160 といった、より強力なハッシュ関数を使ったパスワード暗号法は、総当り攻撃や事前計算に対してまだ耐性を持っている。その種の攻撃は、ハッシュ関数を逆算するのではない。そうではなく、大量の単語やランダムな文字列のハッシュ値を求め、その結果を対象のパスワードハッシュ値と比較するのである。MD5-crypt や bcrypt のような現代的手法は、意図的に計算量の多いアルゴリズムを使っており、一定時間内に攻撃者が試行できる候補が比較的少なくなるようにしている。
ユーザはしばしば脆弱なパスワードを選ぶものである。危険なパスワードのうちには、上で挙げたものの他、辞書に載っているような一単語、自分の苗字や名前、短すぎるパスワード(6 - 7文字以下は短すぎると通常考えられる)、ひねりが無さすぎてすぐ類推できてしまうパスワード(例えば母音と子音を入れ替えたもの)が挙げられる。40年にわたり繰り返し行なわれた調査によると、ユーザが選ぶパスワードの 40% は、辞書や場合によっては個人情報も使って実行される洗練されたクラッキングソフトの前ではたちまち分かってしまうということが明らかにされている。
フィッシングによって取得された MySpace のパスワードを調査したところ、それらの 3.8% は辞書に載っている一単語であり、他の 12% は一単語の末尾に数字を一個加えたものだった。その数字の 2/3 は "1" だった。
ユーザの中には、アカウント取得時に与えられた初期パスワードを変更せず放っておく者もいる。
最後の手段のひとつとしてあるのが、考えうる「全ての」パスワードを試す、いわゆる総当たり攻撃である。理論的には、試行回数に上限が無いとするならば、総当たり攻撃は必ず成功する。なぜなら有効なパスワードを決めるためのルールは公にされている必要があるからだ。しかしパスワードが長くなるにつれて、考えうるパスワードの数も増加する。パスワードが比較的短いのでなければ、総当たり攻撃は非現実的と思われるが、並行処理という手法を使えばパスワードを割り出す時間を短縮することは可能で、それは使用するコンピュータ (CPU) の数に反比例する。この攻撃方法は、攻撃者がパスワードのハッシュ値とハッシュアルゴリズムを知っているかどうかで大きく様相が異なり、知っている場合は「オフライン攻撃」(保護された対象へ接続している必要はない)、知らない場合は「オンライン攻撃」と呼ばれる。オフライン攻撃の方が通常はるかに容易である。なぜならパスワードの検証は、候補となるパスワードのハッシュを数学的に計算し、実際のパスワードのハッシュと比較するだけで済むからだ。オンライン攻撃の場合、攻撃者は全てのパスワードについて認証を試みなければならず、システムによって規則と遅延が課せられ、またそれらの試みは記録される。
パスワードは、アルファベット・数字・(句読点などの)記号をランダムに組み合わせ、8 文字以上の長さにすることが一般に推奨される。