Cifrar y descrifrar JWT con Python 3
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_bytesdata = 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_bytesdata = 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))