Мне нужны некоторые указатели или практический пример того, как зашифровать int в другое int, и секретный ключ потребуется для расшифровки значения.
Что-то вроде:
encrypt(1, "secret key") == 67123571122
decrypt(67123571122, "secret key") == 1
Этот парень спрашивает довольно много тот же вопрос: Симметричный биективный алгоритм для целых чисел
, однако я являюсь полным шифрованием «n00b», я хотел бы получить еще несколько практических примеров, если возможно, на python.
Я понимаю, что мне нужно использовать какой-то блок cipher, но я совершенно не понимаю, что зашифрованный результат должен быть числовым и несколько коротким (возможно, длинным вместо int)
Есть указатели? Спасибо
ОБНОВЛЕНИЕ-
Почему я хочу это сделать?
У меня есть веб-служба, где каждый «объект» получает URL-адрес, например:
example.com/thing/123456/
Сейчас эти идентификаторы являются последовательными. Я хочу скрыть тот факт, что они последовательные (идентификаторы базы данных).
Материал на этих страницах не является «совершенно секретным» или чем-то в этом роде, но кому-то не должно быть так легко подглядывать за другими random 'просто увеличивая этот идентификатор в URL.
Таким образом, при некотором двустороннем числовом шифровании идентификаторы URL вообще не будут последовательными, и кому-то потребуется довольно много времени, чтобы найти больше этих объектов. (Кроме того, запросы регулируются)
И единственная причина, по которой я хочу сохранить это число вместо произвольной строки, состоит в том, чтобы изменение было полной заменой, и все будет работать без каких-либо других изменений кода.
Кроме того, я не могу просто генерировать новые случайные идентификаторы базы данных. Я должен обработать это шифрование / дешифрование в приложении.