Cifrar y descrifrar JWT con Python 3

Nelson Hernández
1 min readJun 26, 2020

--

En este ejemplo practico te enseñare como usar PyJWT

Indice :

  • Crear entorno virtual (virtualenv)
  • Cifrar un Token
  • Descifrar Token

Crear entorno virtual (virtualenv)

Para este ejemplo crearemos un entorno con virtualenv pero si tu deseas usar pipenv no hay problema

virtualenv venv
source ./venv/bin/activate
pip install pyjwt

Cifrar un Token

Para esto necesitamos 2 cosas importantes

Payload : un mensaje que va firmado

secret: es la llave con la que se firma el token

import jwtpayload = {'id': "Hello"}secret = 'dnVvODY4Yzc2bzhzNzZqOG83czY4b2Nq'def write_token(payload: dict):    
token_bytes = jwt.encode(payload, secret, algorithm='HS256')
return token_bytes
data = write_token(payload) print('el token generado es:' str(data))

Descifrar el token

Para esto usamo el metodo decode()

import jwtdef validate_token(encoded_jwt):
try:
response = jwt.decode(encoded_jwt, secret, algorithms=['HS256'])
return response
except jwt.exceptions.DecodeError:
return "Token no valido"
respuesta = validate_token(data)print('la respuesta decifrada es: ' + str(respuesta))

Nuestro ejemplo quedaría de la siguiente Manera

import jwtpayload = {'id': "Hello"}secret = 'dnVvODY4Yzc2bzhzNzZqOG83czY4b2Nq'def write_token(payload: dict):    
token_bytes = jwt.encode(payload, secret, algorithm='HS256')
return token_bytes
data = write_token(payload)print('el token generado es:', str(data))def validate_token(encoded_jwt):
try:
response = jwt.decode(encoded_jwt, secret, algorithms=['HS256'])
return response
except jwt.exceptions.DecodeError:
return "Token no valido"
respuesta = validate_token(data)print('la respuesta decifrada es: ' + str(respuesta))

--

--

No responses yet