Подтвердить что ты не робот

.NET-реализация scrypt

Я читал о scrypt и некоторые его преимущества перед bcrypt хеширования в определенных обстоятельствах.

Во всяком случае, похоже, что scrypt еще не так широко используется. Кто-нибудь видел до сих пор его реализацию в .NET(предпочтение от С#)?

4b9b3361

Ответ 1

Наконец, я нашел реализацию scrypt в С# в библиотеке CryptSharp.
Библиотека является открытым исходным кодом и использует лицензию ISC.

История версий

1.2.0 23 января 2011 года:
SCrypt KDF теперь поддерживается как CryptSharp.Utility.SCrypt.
Добавлен djb Salsa20, требуемый SCrypt.

Ответ 2

Здесь новая реализация SCrypt для .NET: https://github.com/replicon/Replicon.Cryptography.SCrypt

В отличие от CryptoSharp, которая представляет собой отличную библиотеку, она реализуется как упакованная оболочка вокруг собственной библиотеки. Это позволяет использовать инструкции на собственном уровне (например, SSE2), чтобы немного улучшить производительность реализации.

Недостатком является то, что он должен содержать собственные скомпилированные сборки, определять правильный, использовать, распаковывать, а затем загружать. Это означает, что он не идеален для всех сред, но отлично работает там, где он работает.

Ответ 3

В случае, как и я, вы пришли к этому вопросу через быстрый google (появился как верхняя ссылка), теперь вы можете загрузить SCrypt в качестве пакета Nuget в свой проект.

PM> Install-Package Scrypt.NET

Используйте следующее:

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

и сравнения

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

ссылка Github здесь