2017-05-13 20 views
0

...どういうことを聞いて、うまくいけないのですか?私はインターネットでそれを探しました一週間、それを見つけられませんでした...私はそれが長い書籍のどこかに隠されていることを知っているので...ここにあれば、スレッドに私を指示してください...)ハッシュ関数(MD5、SHAなど)で使用される文字セットはどのようなものです...

...私はしたいどんなキャラクターベースを知るか... MD5、SHAのようなハッシュ関数で使われているキャラクターベースではどういうものか知っています...例えばbase64、ascii、extended asciiを使うのですか?例えば、エンコードしてください。char 444(╝)それをエンコードします...しかし、無関係な文字を何個使用できるかについては制限があります。そうでなければハッシュはユニークではないでしょうか?これらのアルゴリズムを使用する多くのサイトでは、base64文字プールのみを使用できるようになっています... ...お待ちください...

答えて

0

ハッシュアルゴリズムは、バイト。したがって、入力が短いエンコードされたテキストまたは大きなバイナリファイルである場合、それらには関係ありません。

ハッシュ関数の実装とプログラミング環境によって、文字列がバイト配列にどのように変換されるかによって異なります。常に同じように行われている限り、ハッシュは同等です。クロスプラットフォームのハッシュが必要な場合は、最初に文字列をバイト配列(できればUTF-8でエンコードされたもの)に変換し、それをハッシュに渡すことをお勧めします。

出力は、多くの場合、ハッシュの16進表現ですが、バイナリ出力を要求することもできます。 SHA-256

SHA256("hello") = "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824" 
  • 例256ビット、従って名前SHA-256と同じである32のバイトを返します。

  • 32バイトは16進数で符号化されています。すべてのバイトは2文字の16進数で表されます(2cは44の1バイトを表します)。
+0

大丈夫ですので、エンコードに使用されたcharプールを知っておく必要があります。この場合、UTF-8 ...ありがとう – trollington2

関連する問題