php строка хэш-формы в целое число

имеет ли PHP встроенную функцию для выполнения строки с целочисленными хэшами, что трудно отменить?

теперь, я знаю, что я, вероятно, могу уйти от выполнения md5 и рассматривать его подстроку как число radix 16, но я ищу что-то встроенное.

спасибо.

3 ответов


Я думаю, что лучший вариант выбрал бы стандартный хэш [либо md5() или sha1()] чтобы получить хэш вашей строки, а затем получить целочисленный хэш, в base_convert($hash, 16, 10) и это должно преобразовать ваш хэш в целочисленный хэш.

надеюсь, я правильно понимаю вашу проблему.


Я думаю, что вы на правильном пути в подходе к этой проблеме в два шага.

во-первых, вы, вероятно, должны придерживаться хэша md5, чтобы выполнить ваше требование "трудно отменить".

во-вторых, вы можете взять вывод md5 в качестве входных данных для функции "преобразовать это в целое число".

во второй части, что именно вы собираетесь делать? Это есть быть целым числом? Или просто печатные символы? если вы просто хотите преобразуйте свой хэш в то, что вы можете хранить в базе данных, передавать по проводу или по какой-либо другой причине строка md5 не будет работать, функция convertuuencode может работать для вас:http://us.php.net/manual/en/function.convert-uuencode.php

другой окольный хакерский подход состоял бы в том, чтобы получить двоичное значение вашего хэша и преобразовать его в десятичное, используя:http://us.php.net/manual/en/function.bindec.php хотя, я никогда не пробовал это и am не уверен, что это сработает так, как ты хочешь.


Я не думаю, что вы найдете что-нибудь для этого, но ваша идея с md5() довольно хорошо, на самом деле. Я не мог себе представить, зачем вам нужно что-то еще: не может быть быстрее, не может быть стабильнее ...