Będzie, ale jest , ale.
Spowoduje to, że jest w stanie rzetelnie wytworzyć ten sam wynik, biorąc pod uwagę powtarzającą się serię bajtów - chodzi o to, że możemy następnie porównać te wyniki, aby sprawdzić, czy bajty się nie zmieniły, lub może tylko cyfrowo podpisać MD5 wynik, a nie podpisanie całego źródła.
The ale jest to, że wspólnym źródłem błędów jest założenie o tym, jak łańcuchy są kodowane. MD5 działa na bajtach, a nie na znakach, więc jeśli mieszamy łańcuch znaków, to naprawdę zaszyfrujemy określone kodowanie tego łańcucha. Niektóre języki (a nawet niektóre środowiska wykonawcze) faworyzują określone kodowania, a niektórzy programiści są przyzwyczajeni do przyjmowania założeń dotyczących tego kodowania. Co gorsza, niektóre specyfikacje mogą przyjmować założenia dotyczące kodowania. Może to być przyczyną błędów, w których dwie różne implementacje będą generować różne skróty MD5 dla tego samego ciągu znaków. Dzieje się tak zwłaszcza w przypadkach, gdy znaki są spoza zakresu od U + 0020 do U + 007F (a ponieważ U + 007F jest formantem, to ma swoje własne problemy).
Wszystko to dotyczy innych skrótów kryptograficznych, takich jak rodzina skrótów SHA.
Powinieneś używać SHA512. – SLaks
używasz hasha md5 nie zaszyfrowanej wartości. Szyfrowanie i mieszanie to nie to samo. – Chris
@Chris, podczas gdy zalety metody są dyskusyjne, możesz użyć algorytmu mieszającego do szyfrowania jednokierunkowego. – corsiKa