Código (10 dígitos): dzohbio2FW
Código (10 dígitos): weVn1I2IQU
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
:-)
/
También puede interesarte:
![]() |
Como Instalar Flask + Gunicorn + Nginx + Docker + Supervisor |
|
![]() |
||
![]() |
||
![]() |
||
![]() |
||
![]() |