Cómo usar Scrypt para generar hash para contraseña y sal en Python

Me gustaría usar scrypt para crear un hash para las contraseñas y las sales de mis usuarios. he encontradodos referencias, pero hay cosas que no entiendo de ellas.

Utilizan las funciones de cifrado y descifrado scrypt. Uno encripta una cadena aleatoria y el otro encripta la sal (que se ve mal, ya que solo se utiliza la contraseña y no la sal para el descifrado). Parece que la función de descifrado se está utilizando para validar la contraseña / sal como un efecto secundario del descifrado.

Según lo poco que comprendo, lo que quiero es una función de derivación de claves (KDF) en lugar de cifrado / descifrado, y es probable que KDF genere y use el KDF para el cifrado / descifrado. El KDF real se usa detrás de escena y me preocupa que seguir ciegamente estos ejemplos lleve a un error. Si las funciones de cifrado / descifrado de Scrypt se utilizan para generar y verificar la contraseña, no entiendo el rol de la cadena que se está cifrando. ¿Importa su contenido o longitud?

Respuestas a la pregunta(2)

Su respuesta a la pregunta