Alguém sabe de uma boa implementação do bcrypt, eu sei que esta pergunta foi feita antes, mas obteve muito pouca resposta. Estou um pouco inseguro de apenas escolher uma implementação que aparece no google e estou pensando que talvez seja melhor usar sha256 no namespace System.Security.Cryptography, pelo menos então eu sei que é compatível! Quais são seus pensamentos?
fonte
BCrypt.Net parece ser a biblioteca mais popular no momento
http://bcrypt.codeplex.com/
Aqui está um exemplo de como usá-lo para hash de senha:
Saída de amostra:
fonte
Você pode encontrar uma implementação atualizada do BCrypt para .Net aqui: http://bcrypt.codeplex.com/
fonte
Eu precisava de uma implementação BCrypt ao mover algo do PostgreSQL (que tem pg_crypto) para o SQLite (que não tem), então escrevi o meu próprio. Vendo por esta mensagem eu não sou o único precisando disso, decidi colocar uma licença nisso e liberá-lo. O URL é:
http://zer7.com/software.php?page=cryptsharp
A implementação Blowfish por trás disso é uma versão da implementação C de domínio público de Bruce Schneier, e é bem-sucedida em todos os vetores de teste oficiais.
O código BCrypt que eu mesmo escrevi com base nas especificações. Eu também criei um script PHP que gera senhas aleatórias de comprimento de 0 a 100 e sais, criptografa-os e os envia para um arquivo de teste. O código C # corresponde a esses 100% das vezes até agora. Você pode usar o script e testar você mesmo.
A biblioteca também inclui o código PBKDF2 que funciona para qualquer HMAC em oposição à implementação somente SHA-1 do .Net (adicionado hoje - pretendo fazer SCrypt em C # em breve e isso requer PBKDF2 com HMAC-SHA256). Você também pode criar um esquema baseado nisso, se quiser.
fonte
Resposta errada, por favor veja abaixo
Todos os algoritmos pós-fixados "Cng" (Cryptography Next Generation) no .Net Framework agora usam bcrypt. Por exemplo, SHA256Cng .
Na verdade, o MS BCrypt (BestCrypt) não se refere ao baseado na cifra Blowfish - obrigado, RobbyD, pelo comentário.
Não apagará a resposta, caso mais alguém faça a mesma confusão.
fonte
Você já tentou esta função MS BCryptCreateHash C ++ talvez ?? Parece estar presente no Windows Server 2008 e no Windows Vista.
Além disso, você provavelmente pode verificar a seguinte classe MS C # BCryptNative.cs também.
fonte