Нужен простой хеш в PHP - PullRequest
       9

Нужен простой хеш в PHP

3 голосов
/ 04 апреля 2009

Мне нужно создать простой метод хеширования для передачи некоторых данных в URL. Это не должно быть очень безопасно, просто не должно быть очевидным для большинства людей.

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

Есть идеи? Я хотел бы, чтобы хеш был как можно более коротким, просто потому, что этот URL предназначен для обмена через IM, электронную почту и т. Д.

Ответы [ 4 ]

7 голосов
/ 04 апреля 2009

Хеш - только один путь. Если вы хотите расшифровать его, вы должны зашифровать его. Попробуйте mcrypt с одним из этих .

Для небезопасных вещей вы можете попробовать base64_encode , Вы также можете base_convert каждый числовой идентификатор от 10 до 36 цифр или около того. Умножение чисел на секретную константу также может помочь.

$obscurity = base_convert($recipientId * 42, 10, 36) . ':' . base_convert($senderId * 42, 10, 36)
2 голосов
/ 04 апреля 2009

base64 определенно должен сделать свое дело, если вы хотите декодировать его снова.

Обратите внимание, что это не хеш, хеш обычно означает одностороннее шифрование.

$senderId = 1234; $recipientId = 5678; $myString = $senderId . ":" . $recipientId; echo base64_encode($myString);

2 голосов
/ 04 апреля 2009

Попробуйте base64 кодирование / декодирование. вместе с опцией apache "Multiviews" или apache mod_rewrite, ваши URL будут выглядеть так:

http://mysite.com/messages/[encoded string here]
1 голос
/ 04 апреля 2009

Вы можете использовать шифрование, как указано @ OIS.

Или вы можете использовать хеш и хранить значения хеша в базе данных, привязанной к идентификатору отправителя и идентификатору получателя. В PHP встроено md5() и sha1().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...