Страницы

Поиск по вопросам

понедельник, 1 октября 2018 г.

Существуют ли матерные слова в 36-ричной системе счисления?

base_convert($id, 10, 36);
Использую преобразованный ID из таблицы MySQL в 36-ричной системе счисления в качестве уникального короткого URL. Может ли пользователь увидеть какое-то неприятное слово в таком URL?
UPDATE Кажется уже разобрался, число 739172. Мда, есть там матерные слова.


Ответ

Насколько я понял, итоговая цель не узнать, есть ли матерные слова в 36-ричной системе счисления, а сгенерировать ID, таких слов не содержащие, на базе числа-идентификатора из БД.
Есть библиотека, которая занимается генерацией таких ID - hashids - и у нее есть встроенная защита от бранных слов
This code was written with the intent of placing created ids in visible places, like the URL. Therefore, the algorithm tries to avoid generating most common English curse words by generating ids that never have the following letters next to each other: c, f, h, i, s, t, u
Защита нацелена на английские слова, но идея настолько проста, что ее легко расширить без составления словарей.
Пример использования библиотеки:
$hashids = new Hashids('my secret key'); $id = $hashids->encode(1, 2, 3); // o2fXhV $numbers = $hashids->decode($id); // [1, 2, 3]

Комментариев нет:

Отправить комментарий