Подтвердить что ты не робот

Будет ли вывод криптографической хеш-функции MD5 одинаковым во всех языках программирования?

Я в основном создаю API в php, и один из параметров, который он примет, является зашифрованным значением md5. У меня мало знаний о разных языках программирования, а также о MD5. Поэтому мой основной вопрос: если я принимаю зашифрованные значения md5, значение останется таким же, генерируемым с любого языка программирования, такого как .NET, Java, Perl, Ruby... и т.д.

Или будут некоторые ограничения или проверки для него.

4b9b3361

Ответ 1

Да, правильная реализация md5 даст тот же результат, иначе md5 не будет полезен в качестве контрольной суммы. Разница может возникнуть при кодировании и порядок байтов. Вы должны быть уверены, что текст закодирован до точно той же последовательности байтов.

Ответ 2

Он будет, но там , но.

Это связано с тем, что он надежно производит один и тот же результат, учитывая повторяющуюся последовательность байтов - точка заключается в том, что мы можем затем сравнить результаты, чтобы проверить, что байты не изменились или, возможно, только цифровой знак результата MD5 а не подписывать весь источник.

, но заключается в том, что общий источник ошибок делает предположения о том, как кодируются строки. MD5 работает с байтами, а не с символами, поэтому, если мы хэшируем строку, мы действительно хешируем конкретную кодировку этой строки. Некоторые языки (и, тем более, некоторые временные ряды) поддерживают специальные кодировки, а некоторые программисты используются для предположения об этой кодировке. Хуже того, некоторые спецификации могут делать предположения о кодировках. Это может быть причиной ошибок, когда две разные реализации будут производить разные хэши MD5 для одной и той же строки. Это особенно важно в тех случаях, когда символы находятся за пределами диапазона U + 0020 до U + 007F (и поскольку U + 007F является элементом управления, то есть имеет свои собственные проблемы).

Все это относится к другим криптографическим хэшам, таким как семейство хэшей SHA.

Ответ 3

Да. MD5 не является функцией шифрования, это хэш-функция, которая использует определенный алгоритм.

Ответ 4

Да, хеши md5 всегда будут одинаковыми независимо от их происхождения - до тех пор, пока базовый алгоритм будет правильно реализован.

Ответ 5

Жизненно важной точкой защищенных хеш-функций, таких как MD5, является то, что они всегда дают одно и то же значение для одного и того же ввода.

Однако он требует, чтобы вы кодировали входные данные в последовательность байтов (или бит) одинаково. Для экземпляров существует множество способов кодирования строки.