문제

BCRYPT의 좋은 구현을 아는 사람이 있습니까?이 질문이 이전에 요청 된 것을 알고 있지만 거의 응답이 거의 없습니다. 나는 Google에서 나타나는 구현을 선택하는 것이 확실하지 않으며 System.security.Cryptography 네임 스페이스에서 SHA256을 사용하는 것이 더 나을 것이라고 생각하고 있습니다. 적어도 그것이 지원된다는 것을 알고 있습니다! 당신은 무엇을 생각하십니까?

도움이 되었습니까?

해결책

당신이 찾고있는 것처럼 들립니다 bcrypt.net:

Bcrypt.net은 Niels Provos와 David Mazières의 "향후 적응 가능한 암호 체계"에 설명 된 OpenBSD의 Blowfish 기반 암호 해싱 코드를 구현 한 것입니다. Damien Miller의 JBCrypt의 직접 포트이며 동일한 BSD 스타일 라이센스로 출시됩니다. 이 코드는 완전히 관리되며 Little-Endian CLI 구현과 함께 작동해야합니다. Microsoft .NET 및 Mono로 테스트되었습니다.

다른 팁

.NET 용 BCRYPT의 업데이트 된 구현을 여기에서 찾을 수 있습니다.http://bcrypt.codeplex.com/

Bcrypt.net은 현재 가장 인기있는 도서관 인 것 같습니다.

http://bcrypt.codeplex.com/

다음은 해싱 비밀번호에 사용하는 방법입니다.

[TestMethod]
    public void BCryptTest()
    {
        const string password = "PASSWORD";
        const int workFactor = 13;

        var start = DateTime.UtcNow;
        var hashed = BCrypt.Net.BCrypt.HashPassword(password, workFactor);
        var end = DateTime.UtcNow;

        Console.WriteLine("hash length is {0} chars", hashed.Length);
        Console.WriteLine("Processing time is {0} with workFactor {1}", end - start, workFactor);
        Console.WriteLine("Hashed password: {0} ", hashed);
        Console.WriteLine("correct password {0}", BCrypt.Net.BCrypt.Verify("PASSWORD", hashed));
        Console.WriteLine("incorrect password {0}", BCrypt.Net.BCrypt.Verify("PASSWORd", hashed));
    }

샘플 출력 :

hash length is 60 chars
Processing time is 00:00:01.0020000 with workFactor 13
Hashed password: $2a$13$iBqdG7ENBABEargiyzGlTexPsmviF/qrFxUZB2zce7HKF6MoBNhEq 
correct password True
incorrect password False

PostgreSQL (PG_Crypto가있는)에서 SQLITE (그렇지 않음)로 무언가를 이동할 때 BCrypt 구현이 필요했기 때문에 내 자신을 썼습니다. 이 메시지에서 나는 이것을 필요로하는 유일한 사람이 아니라, 라이센스를 때리고 그것을 공개하기로 결정했습니다. URL은 다음과 같습니다.

http://zer7.com/software.php?page=cryptsharp

그 뒤에있는 Blowfish 구현은 Bruce Schneier의 Public Domain C 구현의 항구이며 모든 공식 테스트 벡터에 성공합니다.

내가 사양을 기반으로 직접 쓴 bcrypt 코드. 또한 길이 0 ~ 100의 임의 암호를 생성하는 PHP 스크립트를 만들었습니다. C# 코드는 지금 까지이 시간의 100%와 일치합니다. 스크립트를 사용하고 직접 테스트 할 수 있습니다.

이 라이브러리에는 또한 .NET의 SHA-1 전용 구현과 달리 HMAC에 맞는 PBKDF2 코드도 포함되어 있습니다 (오늘 추가-곧 C#에서 SCRYPT를 수행 할 계획이며 HMAC-SHA256이 포함 된 PBKDF2가 필요합니다). 원한다면 이것에 따라 자신을 계획으로 만들 수 있습니다.

오답, 아래를 참조하십시오

.NET Framework의 모든 "CNG"(Cryptography Next Generation) 포스트 픽스 알고리즘은 이제 BCrypt를 사용합니다. 예를 들어 SHA256CNG.


실제로 MS Bcrypt (BestCrypt)는 Blowfish Cipher를 기반으로 한 사람을 언급하지 않습니다. 감사합니다. Robbyd.
다른 사람이 동일한 혼란을 일으킬 경우를 대비하여 답을 삭제하지 않습니다.

당신은 이것을 시도 했습니까? MS Bcryptcreatehash C ++ 기능 아마도?? Windows Server 2008 및 Windows Vista에서 존재하는 것 같습니다.

또한 다음을 확인할 수 있습니다 MS C# bcryptnative.cs 아마도 수업.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top