初期 Unix の実装はパスワード長を 8 文字以下に制限しており、12 ビットのソルトを使っていた。この場合、ソルトが作るパターンは 4096 種類になる。1970年代における殆どの用途ではこの 12 ビットで充分だと考えられていたが、2005年までには記憶媒体の低価格化が進み、よく使われる何百万種ものパスワードのハッシュ値を、全 4096 種のソルトの分も含めて、攻撃者は事前計算して一個のポータブル HDD に用意できるようになった。攻撃者に資金があれば、6 文字以下の全てのパスワードと 7-8 文字のよく使われるパスワードについて、4096 パターンのソルトを含めた暗号化データを作成し、それを保存したディスク群 (disk farm) を構築することも可能である。また数千ものパスワードを一度に解析対象とする場合、メモ化もやはり利点がある。
事前計算とメモ化の長所は、ハッシュの過程をランダム化することで打ち消すことができる。この仕組みはソルトと呼ばれる。ユーザがパスワードを設定する際、「ソルト」（塩）という短いランダムな文字列をパスワードの末尾に加えた上で暗号化するのである。ソルトは、認証の際に利用できるよう、暗号化したパスワードと共に保管される。通常、ソルトはユーザ毎に異なるため、各パスワード候補のハッシュ値を一個しか計算していない事前計算リストはもはや役に立たない。初期の Unix システムは 12 ビットのソルトを使っていた。それでも攻撃者は、よく使われるパスワードについては 12 ビットのソルトからなる全 4096 パターンのリストを作っていた。しかしソルトが充分な長さを持っているならば、考えうるパターンは膨大なものになり、攻撃者は各ユーザの各パスワード候補ごとに暗号化を試さなければならなくなる。md5-crypt や bcrypt といった現代的な手法は、それぞれ 48 ビット、128 ビットのソルトを使っている。
最も基本的な形態として、事前計算とは辞書（あるいはパスワード候補の探索空間）の各語のハッシュ値を計算し、ハッシュ値の一覧を検索できるよう平文パスワードとハッシュ値のペアを保存しておくことである。こうしておけば、暗号化されたパスワード（ハッシュ値）を新しく入手した際、平文パスワードを割り出すのは造作もないことである。ソルトが適切に使われていない場合、辞書攻撃において事前計算は非常に有効であり、大容量記憶媒体の劇的な低価格化で、かなりの大型辞書を使うことも現実的になった。さらに効率的な事前計算攻撃の手法も考えられる。すなわち時間と空間のトレードオフを考慮すると、次のような妥協点が導かれる。サイズが N の探索空間は、サイズが O(N2/3) のデータベースへ収めることができ、かつその探索にかかる時間は O(N2/3) となる。この理論は、最近になって実際の技法として洗練されたものになっている。別の例では、アルファベットと数字からなる Windows LAN Manager パスワードを二、三分で解析してしまうものもある。非常に脆弱なパスワードハッシュ法を使っていた過去の LAN Manager の場合は、さらに時間が短縮される。Windows Vista/Server 2008 よりも前の Windows では、後方互換のためパスワードの計算と保管に LAN Manager ハッシュを標準で使っていた。事前計算と似た手法に、いわゆるメモ化がある。これは複数パスワードの解析を、一個分の解析コストで済ませるために使われる。パスワードの暗号化は、記憶済みハッシュの比較よりもずっと時間がかかるため、一度暗号化したパスワードの内容は記憶しておき、効率的な探索アルゴリズムを使って各々暗号化したパスワードと比較するのである。無論、この2つの手法は組み合わせることもできる。時間と空間のトレードオフを考慮した攻撃手法は、個別に解析するより短い時間で複数パスワードを同時に解析するよう、作り変えることができる。
大永4年（1524年）、尾張国海東郡桑山ノ庄で桑山以則の子として生まれた。桑山家は鎌倉幕府の有力御家人・結城朝光の子孫であるとされる。織田信長の家臣・丹羽長秀に与力として仕え、姉川の戦いなどで活躍し、羽柴秀吉から冷静沈着な戦いぶりを賞賛された。天正2年（1574年）に秀吉の要請を受けて丹羽家から羽柴家へ移り、天正8年（1580年）には但馬国竹田城主となって1万石を与えられた。天正11年（1583年）の賤ヶ岳の戦いでは賤ヶ岳砦を佐久間盛政の攻撃から死守するなどの武功を挙げ、2万石に加増された。天正13年（1585年）、紀州征伐の後に秀吉の弟・秀長が紀伊の領主になると、同年5月に大坂城で秀吉から秀長の家老職を命ぜられ、3万石への加増を受けて和歌山城代となった。文禄4年（1595年）7月8日、豊臣秀次が謀反の疑いを釈明するために伏見城を訪れた際、伏見城大手門の守備を任された。その功により、和泉国日根郡谷川に1万石を加増されて4万石となった。慶長元年（1596年）に出家し、以後は桑山治部卿法印を名乗る。同年5月11日に修理大夫の官位を嫡孫の一晴に譲り、一晴に2万石、次男の元晴に1万石を分与し、重晴は1万石のみを治めた。慶長5年（1600年）の関ヶ原の戦いの後、一晴から4000石、元晴から2000石を譲り受け、1万6000石を治めることとなった。慶長11年（1606年）10月1日に死去、享年83。谷川の所領のうち次男元晴が6000石、その子で孫の清晴が1万石を相続した。