Что делать, если вы md5 идентификатор и случайная строка
$id = md5( $id . uniqid( mt_rand(), true ) );
Это должно сделать его неуязвимым.
Затем проверьте базу данных, чтобы увидеть, существует ли этот идентификатор.
$db = mysql_connect('localhost', 'username', 'password');
mysql_select_db( 'table' );
$id = 223;
do {
$unique_id = substr( md5( $id . uniqid( mt_rand(), true ) ), 0, 8 );
$q = mysql_query( sprintf( "select id from ids where id='%s'", intval($unique_id) ) );
$c = mysql_num_rows( $q );
} while ( $c > 0 );
echo $unique_id;
Это единственный способ гарантировать уникальность при ограничении количества символов в идентификаторе