c# - studio - Implementación de.NET de scrypt
En caso de que, como yo, hayas llegado a esta pregunta a través de un google rápido (surgió como el enlace superior), ahora puedes descargar SCrypt como paquete Nuget en tu proyecto.
PM> Install-Package Scrypt.NET
Use de la siguiente manera:
ScryptEncoder encoder = new ScryptEncoder();
string hashsedPassword = encoder.Encode("mypassword");
y comparando
ScryptEncoder encoder = new ScryptEncoder();
bool areEquals = encoder.Compare("mypassword", hashedPassword);
Finalmente encontré una implementación de scrypt en C # en la biblioteca CryptSharp .
La biblioteca es de código abierto y utiliza la licencia de ISC .
Historial de versiones
1.2.0 23 de enero de 2011:
El SCrypt KDF ahora se admite como CryptSharp.Utility.SCrypt.
Se agregó Salsa20 de djb, requerida por SCrypt.
Hay una nueva implementación de SCrypt para .NET aquí: https://github.com/replicon/Replicon.Cryptography.SCrypt
A diferencia de CryptoSharp, que es una gran biblioteca, esta se implementa como un contenedor empaquetado alrededor de una biblioteca nativa. Esto le permite usar instrucciones de nivel nativo (como SSE2) para mejorar bastante el rendimiento de la implementación.
La desventaja es que debe contener ensamblajes nativos compilados, detectar el correcto para usar, descomprimirlo y luego cargarlo. Eso significa que no es ideal para todos los entornos, pero funciona muy bien donde funciona.