Cómo generar cadenas aleatorias únicas en una aplicación escalable

En muchos de mis proyectos he tenido la necesidad de utilizar cadenas de números y letras aleatorias. En una aplicación que requiere algo así, es fácil pensar que puedes usar una cadena larga para asegurar la unicidad, pero siempre he sentido que esta es una suposición peligrosa, especialmente en una aplicación que escala. En mis proyectos con la plataforma ágil de OutSystems utilizando mi Marco de SaaS, encontré la necesidad de esto en más de un lugar, así que creé un sistema simple para obtener cadenas aleatorias que sean seguramente únicas.

Tal vez te preguntes para qué se puede utilizar un sistema como este. En mi Marco de SaaS, es una parte fundamental del sistema de restablecimiento de contraseñas. Envía un correo electrónico al usuario con una cadena única en el enlace para completar el restablecimiento de la contraseña, que se utiliza para identificar la solicitud y validar cosas como quién es el usuario y si la solicitud de restablecimiento de contraseña ya se ha completado. En esta situación, sería un gran riesgo de seguridad enviar un identificador fácilmente predecible. También utilizo el sistema para proporcionar a los usuarios no registrados acceso a una información restringida, como enviar por correo electrónico a un cliente una cotización para realizar un trabajo. Una vez más, esta es una situación en la que no puedes permitirte que el identificador de datos sea predecible, pero al mismo tiempo no puedes validar la identidad del usuario.

Índice de Contenido
  1. Generación de las cadenas
  2. Más sobre la plataforma ágil de OutSystems

Generación de las cadenas

La plataforma ágil viene con una función "GeneratePassword" que crea las cadenas por ti. Acepta un número entero para especificar la longitud y un booleano que te permite hacer que solo devuelva números.

Para asegurarme de que los resultados sean únicos, creé una entidad llamada UNIQUE_STRING para almacenar lo que ya se ha creado. Luego, creé una acción que acepta una longitud y una bandera booleana para indicar si solo se permiten números. La acción ejecuta GeneratePassword pasando los parámetros de entrada correspondientes y luego verifica en la base de datos para asegurarse de que lo que se ha creado aún no exista. Una vez que tiene una entrada única, la agrega a la base de datos y luego devuelve el ID de la entidad creada.

Elegí utilizar el ID de la entidad y no el valor real como salida de la acción porque quiero darles a los consumidores la opción de eliminar la entrada si alguna vez es apropiado. Por ejemplo, en una situación en la que la cadena identifica un elemento temporal o desechable (como un nombre de archivo), entonces tiene sentido eliminarlo cuando hayas terminado. Después de todo, ¿por qué tener una base de datos llena de datos que nunca necesitarás nuevamente y que no tienen valor comercial?

J.Ja

La importancia de la automatización en la gestión de servidores en la nube

Más sobre la plataforma ágil de OutSystems

  • Creación de un sistema de inicio de sesión para la plataforma ágil de OutSystems
  • Finalizando mi proyecto de aplicación en la plataforma ágil de OutSystems

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Nube, allí encontraras muchos artículos similares a Cómo generar cadenas aleatorias únicas en una aplicación escalable , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.