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

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

56 голосов
/ 31 января 2011

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

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

Ответы [ 3 ]

53 голосов
/ 12 марта 2011

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

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

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

20 голосов
/ 01 декабря 2012

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

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

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

18 голосов
/ 11 мая 2015

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

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

и сравнение

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

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

...