php. нужно закодировать id для GET данных, crypt и md5 не подходит

M
На сайте с 20.08.2004
Offline
376
3224

есть id который передается через коммандную строку

его надо закодировать

длинна мд5 избыточна, достаточно до 8 символов,

хотелось бы использовать только латинский алфавит и цифры чего нет в cpypt

есть в пхп то что мне нужно?

спасибо

отец сыночка, лапочки дочки и еще одного сыночка
[Удален]
#1
Miracle:
есть id который передается через коммандную строку
его надо закодировать
длинна мд5 избыточна, достаточно до 8 символов,
хотелось бы использовать только латинский алфавит и цифры чего нет в cpypt

есть в пхп то что мне нужно?

спасибо

если не важно раскодируют или нет, то http://php.net/manual/en/function.base64-encode.php

M
На сайте с 20.08.2004
Offline
376
#2

спасибо, но там тоже есть спец символы

да и проще перегнать в 16ю систему в таком случае

dvaes
На сайте с 03.09.2007
Offline
65
#3

а вырезать каждый 4 символ допустим из мд5 и составить 8 символьный код?))

M
На сайте с 20.08.2004
Offline
376
#4
dvaes:
а вырезать каждый 4 символ допустим из мд5 и составить 8 символьный код?))

есть вероятность неуникальности

dvaes
На сайте с 03.09.2007
Offline
65
#5

ну везде есть вероятность неуникальности) и в том же мд5) только это очень маленькая вероятность, и случится практически не может)

DeveloperRu
На сайте с 27.02.2009
Offline
72
#6

можно использовать функцию

function md5int($str, $len=7) {
return hexdec(substr(md5($str),0,$len));
}

она вернет вместо md5 строки семь цифр по-умолчанию, можно сделать больше, тогда будет большая уникальность

Ответы на вопросы (http://telenok.com)
SBot
На сайте с 29.07.2008
Offline
115
#7

Попробуйте разные варианты в сочетании этих функций:

http://www.php.net/manual/en/function.rand.php

http://www.php.net/manual/en/function.time.php

http://www.php.net/manual/en/function.uniqid.php

M
На сайте с 20.08.2004
Offline
376
#8

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

Miracle добавил 11.08.2010 в 11:14

DeveloperRu, спасибо. извратиться, урезать и тд я тоже могу.

я думал может есть то чего я не знаю.

всем спасибо. буду переводить в 16 систему исчисления

cainz
На сайте с 05.01.2008
Offline
60
#9

Попробуйте воспользоваться готовым решением от Дмитрия Котерова:

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

http://dklab.ru/lib/HTTP_UrlSigner/

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий