Pergunta

Eu li sobre scrypt e algumas de suas vantagens sobre o bcrypt algoritmo de hash em certas circunstâncias.

De qualquer forma, parece que o scrypt ainda não é tão amplamente usado.Alguém viu até agora uma implementação dele em .NET (favorecida em C #)?

Foi útil?

Solução

Finalmente encontrei uma implementação de scrypt em C # na biblioteca CryptSharp .
A biblioteca é de código aberto e usa a licença ISC .

Histórico da versão

1.2.0 23 de janeiro de 2011:
O SCrypt KDF agora é compatível como CryptSharp.Utility.SCrypt.
Adicionado o Salsa20 do djb, exigido pelo SCrypt.

Outras dicas

Há uma nova implementação de SCrypt para .NET aqui: https://github.com/replicon/Replicon.Cryptography.SCrypt

Ao contrário do CryptoSharp, que é uma ótima biblioteca, este é implementado como um empacotador em torno de uma biblioteca nativa.Isso permite que ele use instruções de nível nativo (como SSE2) para melhorar um pouco o desempenho da implementação.

A desvantagem é que ele deve conter assemblies compilados nativos, detectar o correto para usar, descompactá-lo e carregá-lo.Isso significa que não é ideal para todos os ambientes, mas funciona muito bem onde funciona.

Caso, como eu, você tenha respondido a essa pergunta por meio de um rápido Google (apareceu como o link superior), agora você pode baixar o SCrypt como um pacote Nuget em seu projeto.

PM> Install-Package Scrypt.NET

Use da seguinte maneira:

ScryptEncoder encoder = new ScryptEncoder();
string hashsedPassword = encoder.Encode("mypassword");

e comparando

ScryptEncoder encoder = new ScryptEncoder();
bool areEquals = encoder.Compare("mypassword", hashedPassword);

Link do Github aqui

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top