Publicidad

Generar códigos únicos aleatorios en Python


Por Alex el 12/05/2025, Comentar el artículo

Comparte este artículo:      




A menudo a la hora de desarrollar necesitamos crear códigos o secuencias de dígitos únicos para sesiones, password y las mas variadas utilidades que queramos darles. En Python podemos crear unas funciones muy sencillas que a continuación os voy a dejar para crearlos.


Códigos de diferentes longitudes como los siguientes:

Código (10 dígitos): dzohbio2FW
Código (10 dígitos): weVn1I2IQU

Estas son las funciones que generan esos códigos:

import secrets
import sys
import uuid
import base64


def generateRandomCode(n):
    alpha_num = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz' 
    return ''.join(secrets.choice(alpha_num) for _ in range(n))


def generateUUIDCode(n):
    u = uuid.uuid4()
    b64 = base64.urlsafe_b64encode(u.bytes).decode('utf-8').rstrip('=')
    return b64[:n]


if __name__ == "__main__":

    long_code = int(sys.argv[1]) if len(sys.argv) > 1 else 10
    print(f"Código ({long_code}): {generateRandomCode(long_code)} \n")
    print(f"Código ({long_code}): {generateUUIDCode(long_code)} \n")


El código lo tenéis aquí https://github.com/depruebas/py-random-hash-codes es el fichero random-codes.py

y para probarlo desde consola ejecutar:

python random-codes.py 20

Y dará dos códigos random de 20 dígitos.

La primera función generateRandomCode genera los códigos random a partir de un una cadena alfanumérica del abcedario y la segunda generateUUIDCode lo genera a partir de un hash.

En el repositorio también hay un segundo fichero random-codes-long.py que hace exactamente lo mismo pero están las funciones desglosadas para ver el proceso que hacen.

Una vez tenemos las funciones para generar códigos aleatorios podemos separarlas del código principal y crear un modulo para despues importarlo en nuestras aplicaciones de forma fácil.

Separamos el código de las funciones en otro archivo, por ejemplo, random_modul.py que solo contiene las funciones random

import secrets
import uuid
import base64

def generateRandomCode(n):
    alpha_num = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz' 
    return ''.join(secrets.choice(alpha_num) for _ in range(n))


def generateUUIDCode(n):
    u = uuid.uuid4()
    b64 = base64.urlsafe_b64encode(u.bytes).decode('utf-8').rstrip('=')
    return b64[:n]


Y lo incluimos en el proyecto, en el ejemplo, app.py

import sys
from random_modul import generateRandomCode, generateUUIDCode

if __name__ == "__main__":

    longitud = int(sys.argv[1]) if len(sys.argv) > 1 else 10

    print(f"Código aleatorio seguro  ({longitud}): {generateRandomCode(longitud)}")
    print(f"Código basado en UUID    ({longitud}): {generateUUIDCode(longitud)}")

El código en el github


Y esto es todo, feliz programming!!!
Saludos
Alex
:-)
/


Si te ha gustado el artículo compartelo en:      




Añadir un comentarios:

Nombre:
Email: (no se publica el email)




SIGUENOS EN


ARCHIVO

Publicidad

.