Во-первых, целью этой процедуры является создание ключа / хеша / кода, который будет уникальным для одной данной базы данных.Невозможно создать что-то уникальное для всего мира в данный момент.Тем не менее, вы должны создать простую, видимую строку, используя собственный алфавит, и проверить созданный код в вашей базе данных (таблица).Если эта строка уникальна, тогда вы применяете md5()
к ней, и никто не может угадать ее или любой скрипт.Я знаю, что если вы углубитесь в теорию генерации криптографии, вы сможете найти много объяснений такого рода генерации кода, но когда вы используете его на практике, это действительно не так сложно.
Вот кодЯ использую для генерации простого 10-значного уникального кода.
$alphabet = "aA1!bB2@cC3#dD5%eE6^fF7&gG8*hH9(iI0)jJ4-kK=+lL[mM]nN{oO}pP\qQ/rR,sS.tT?uUvV>xX~yY|zZ`wW$";
$code = '';
$alplhaLenght = strlen($alphabet )-1;
for ($i = 1; $i <= 10; $i++) {
$n = rand(1, $alplhaLenght );
$code .= $alphabet [$n];
}
А вот несколько сгенерированных кодов, хотя вы можете запустить их самостоятельно, чтобы увидеть, как они работают:
SpQ0T0tyO%
Uwn[MU] [.
D | [ROt + Cd @
O6I | w38TRe
Конечно, может быть много «улучшений», которые можно применить к нему, чтобы сделать его более «сложным»msgstr ", но если вы примените md5()
к этому, он станет, скажем," неузнаваемым ".:)