ハッシュの戻り値の「長さ」

Webで検索したページの記述を読んでいると、「32文字の文字列」が128bitになっている箇所があって混乱した(32文字は256bitになる)が別の記述などで確認すると、ハッシュ関数が返り値を「16進数」で返してくることが多いというのが正解らしい。
つまり「32文字の文字列」ではなく「32桁の16進数」であったというわけだ。やはりレビューをうけていないWeb上の記述は信頼性が低いというところか。当然、この文章も含めて(笑)。
以下脈絡のない話
調べていたのはSHA-1の長さなどなのだが、これが160bitという謎の長さだった。(まぁ実効性としては138bit程度だという噂だが。[CRYPTO-GRAM日本語版]解読されたSHA-1 | 日経 xTECH(クロステック)。コリージョンが発生する確立とビット長の関係が個人的な予想と違う。160bitならコリージョンの発生は2の160乗回に一度だと思うのだが。)
人の作ったシステムで「ハッシュ値を格納しているデータベース項目のサイズ」が気になったのだが、そもそもその資料では「サイズの単位」が書かれていなかった(笑)。多分バイト単位だと思うが。
出来ればSHA256とかにしてしまいたいが、実装が多いのがsha1なのでそれを使っている。どこかに(信頼できる)実装とかあるのであろうか。アルゴリズムは後悔されているはずだけど自分で実装するのはあり得ないなぁ(笑)。セキュリティーのべからず集にも「自前の暗号化はかえって危険」というのがあったし、作らない方がいいらしい。と言って「面倒だから」というのを隠しておこう。
ところで、MD5は引数を入れると「文字列」で答えを返したような気がする。PGPは読み上げに便利(といってもJapaneseには便利じゃない)「キーワードモード」でも返してきたような。「ジュリエット、チャーリー・・・」ではない単語が返ってきていたような気がする。アレは何進数になっていたのだろうか。(辞書に載せる単語数によって好きに変えられると思うが。)