2017-03-28 15 views
1

SHA1を使用してハッシュ文字列を持っています。この文字列を文字列のようなパスワードに変換したいと思います。これは、上、下、および特殊文字を含む約8文字を意味します。ハッシュ文字列を文字列のようなパスワードに変換します。

+1

SHA-1ハッシュ関数の出力サイズは160ビットです。 8文字のパスワードは、48と64ビットのエントロピーの間にあります。ハッシュを「パスワード」に減らす方法は?なぜあなたはこれをしたいのですか?これは可逆的になっていますか?何を達成したいのか理解する必要があり、何らかの助けを与えるためになぜ –

+1

Base64は最初の6つのSHA1バイトをエンコードします。しかし、あなたの使用状況に応じて、これは恐ろしく恐ろしいかもしれません。 – zaph

+1

セキュリティ/エンコードについての話題なので、この質問を議論の対象外とすることにしました。 –

答えて

2

base-85を使用して、ハッシュの最後の8バイトを10個のASCII文字にエンコードできます。

元々ハッシュされた文字列が予測可能な場合(たとえば、単語または句、またはよく使用されるパスワード)、10文字の文字列から推測するのが非常に簡単です。元の文字列がランダムに生成されたとしても、同じ切り捨てハッシュを生成する別の文字列を見つけるのは比較的簡単です。

つまり、この手法はセキュリティを必要とするものには使用しないでください。

+1

人間が結果[Base58](https://en.wikipedia.org/wiki/Base58)を入力しようとすると、以下のような類似の文字は省略されます:0 (ゼロ)、O(大文字o)、I(大文字i)、l(小文字L)、英数字以外の文字+(プラス)および/(スラッシュ) Base85には、 - 、 - 、+、=、^、!、/、*、?、&、<, >、(、)、[、]、{、}、@といった一般的なコンピュータユーザーにとっては、 、%、$、#。 – zaph

+0

"は、上位8文字、下位4文字、**特殊文字**を意味します。 – erickson

+0

Quick、 "Il"、大文字iと小文字のL? Base85は人々が入るためのものではなく、Base58はあります。しかし、おそらく再びOPは人間の入力のために文字を使用するつもりはありません。 – zaph

関連する問題