改竄の検出を行う場合は、単純なハッシュ関数アルゴリズムを用いると、容易に同じハッシュ値を求めることができるため、安全に設計されたハッシュ関数を用いる必要がある。
パスワードの保護.
ハッシュ関数は非可逆変換であるため、ハッシュ値から元の値を容易には復元できないという特徴がある。そのため、認証サーバは、パスワードをハッシュ化して保存することが推奨される。このようにすれば、サーバ内の認証情報を窃取された場合であっても、キーを知られるリスクを減らすことができる。
特性.
良いハッシュ関数は、一般に以下のような特性を満たす必要がある。なお、関連する概念（暗号学的ハッシュ関数、チェックサムなど）では要求は異なる。
低コスト.
決定性.
一様性.
良いハッシュ関数は、考えられる入力範囲が出力範囲全体になるべく一様に分布するようにマッピングを行う。つまり、出力範囲のそれぞれのハッシュ値はほぼ同じ確率で生成されるべきである。このような条件があるのは、異なる入力が同じハッシュ値にマッピングされてしまう「衝突」が発生すると、ハッシュに基づく各種技法のコストは衝突発生回数と共に増大するためである。あるハッシュ値が他のハッシュ値より生成されやすいなら、参照操作で衝突しているエントリ間でどれが探しているエントリかを調べる作業が基本的に大きな部分を占めることになる。
注意しなければならないのは、「一様分布」が必要なのであって「無作為」である必要はないという点である。よい無作為化関数はハッシュ関数にも適していることが多いが、ハッシュ関数が無作為化関数である必要はない。
ハッシュ関数を評価する場合、ハッシュ値の分布の一様性はカイ二乗検定で評価できる。
可変な値域.
データ正規化.
用途によっては、入力データに比較目的には不適切な特徴が含まれていることがある。例えば、英語の個人名を参照するとき、大文字と小文字を区別しない方がよい。そのようなデータをハッシュ関数の入力にする場合、データの同値関係基準を考慮すべきであり、同じと見なされる入力には同じハッシュ値を生成すべきである。
連続性.
（等しいデータではなく）類似するデータを探索する用途では、ハッシュ関数は可能な限り連続となっているべきである。少しだけ異なる入力に対しては、同じハッシュ値かごく近いハッシュ値を生成すべきである。