Necesito algunos punteros o un ejemplo práctico sobre cómo encriptar una int a otra int, y se necesitaría una clave secreta para descifrar el valor.entero simétrico a la encripción entera
Algo así como:
encrypt(1, "secret key") == 67123571122
decrypt(67123571122, "secret key") == 1
Este individuo pide más o menos la misma pregunta: Symmetric Bijective Algorithm for Integers
sin embargo yo siendo un total de cifrado "n00b" Me gustaría algunos ejemplos más prácticos, en Python, si es posible.
entiendo que necesito utilizar algún tipo de cifrado de bloques, pero estoy bastante perdido por parte de mantener el resultado cifrado todavía ser numérico y un poco corto (quizás mucho en lugar de un int)
Cualquier punteros? Gracias
ACTUALIZACIÓN- ¿Por qué quiero hacer esto?
Tengo un servicio web en la que cada "objeto" consigue un URL, por ejemplo .: example.com/thing/123456/
En este momento, esas identificaciones son secuenciales. Quiero ocultar el hecho de que son secuenciales (ID de base de datos).
Las cosas en esas páginas no son "de alto secreto" ni nada por el estilo, pero no debería ser tan fácil para alguien husmear en algún otro objeto aleatorio como simplemente incrementar esa ID en la URL.
Por lo tanto, con algún tipo de cifrado numérico bidireccional, los ID de URL no serán secuenciales en absoluto, y le tomaría a alguien bastante tiempo encontrar más de estos objetos. (Además, las solicitudes se aceleran)
Y la única razón por la que quiero mantener este número en lugar de una cadena arbitraria es para que el cambio sea un reemplazo total, y todo funcionará sin ningún otro cambio de código.
Además, no puedo simplemente generar nuevas ID de bases de datos aleatorias. Tengo que manejar este cifrado/descifrado en la aplicación.
¿Por qué haces esto? ¿Cuál es el objetivo? Es muy peligroso crear tu propia criptografía. Incluso cosas engañosamente simples como "solo use cifrado X" pueden tener ramificaciones de seguridad inesperadas. –
Buen punto. Actualicé la pregunta – adamJLev
[Formato que preserva el cifrado] (http://en.wikipedia.org/wiki/Format-preserving_encryption) –