>>728
そういうことをやりたいならハッシュやダイジェストがキーワードではない。
普通に可逆圧縮しろ。
圧縮後のデータを管理するときに、さらにハッシュを使うというのはありだけど、
それもメモリ容量の節約にはならない。
ハッシュはメモリを余分に使うことで時間を節約する技法。

ハッシュが事実上一方向関数であるということを認識すべき。
特にMessageDigestのようなものは多対一の写像なので元に戻すのは不可能。

自分で可逆圧縮の実装をするのが面倒ならDeflaterとInflaterがある。
メモリ節約を考えるほどだから、それなりに長い文字列を扱おうとしているんだろうけど、
もし短いようなら、この圧縮方法は向いていないので注意。
使い方のサンプルがDeflaterの説明にある。