Soy nuevo en todo lo relacionado con la autenticación y no tengo conocimiento sobre algoritmos de cifrado. Estaba leyendo sobre JWT, pero por lo que descubrí, tendría más sentido para mi proyecto autenticar a los usuarios usando cualquiera de estas 2 estrategias:
const token = { "user": "johndoe", "iat": 4342342352, "exp": 4352234322 } Eg: // server sets token encryptionLibrary.encrypt(token, "AES-256", "server's super password") // then decrypts it when the token is sent with a HTTP request encryptionLibrary.decrypt(token, "AES-256", "server's super password")Pregunta: ¿Comprobar la firma solo sería más rápido que descifrar toda la cadena o depende absolutamente de la implementación? (es decir, usando una biblioteca rápida/lenta).
Pregunta relacionada: si ya conozco el contenido de una cadena cifrada (digamos que sé que es la variable del token anterior) y el algoritmo de cifrado, ¿esto permitirá romper mi contraseña? (por lo tanto, la opción n. ° 2 no es segura)
¿Por qué no simplemente usar JWT en su lugar? Parece demasiado hinchado para mi proyecto , solo necesito una forma de almacenar en el extremo del cliente un JSON con información de user , iat y exp y dejar que el servidor demuestre que es legítimo. Firmar o cifrar toda la carga útil debería evitar que los atacantes creen tokens falsos, creo.