2013-02-19 2 views
1

BCrypt $ 2a를 사용하는 PHP 기반 응용 프로그램을 .Net 기반 응용 프로그램으로 변환 할 수있는 라이브러리가 있으면 현재 사용하고있는 라이브러리에서 현재 BCrypt C# Library 나는 방금 $ 2y를 사용하고 있다는 것을 깨달았습니다. 그래서 대용량 암호 재설정을하지 않고 가식적으로 사용자를 마이그레이션 할 수 없습니다. 사용할 수있는 C#에 $ 2a 포트가 있거나 PHP에서 역으로 $ 2y 구현이되어 기존 시스템에 맞출 수 있고 암호를 다시 해싱 할 수 있습니다. 이상적으로 나는 PHP 버전에서 제로 코딩을하고 닷넷 플랫폼으로 마이그레이션 할 수 있기를 원합니다.PHP에서 C#로 변환하는 BCrypt 사용

감사합니다.

답변

2

$ 2a $는 PHP bcrypt의 버전이 얼마나되는지에 따라 다릅니다.

2011 년 이전에는 $ 2a $에서 $ 2x $로 변경하려고합니다. Post-2011, $ 2a $ 및 $ 2y $ (UTF-8 암호로 생성 할 수없는 0xff 시퀀스 제외)는 같습니다. 세 개 모두 ASCII 암호와 동일합니다.

내 라이브러리 CryptSharp은 $ 2a $ (post-2011, $ 2y $ equivalent), $ 2x $ 및 $ 2y $ 형태로 bcrypt를 수행 할 수 있습니다.

+0

Zer, 코드 샘플을 붙여 넣을 수 있습니까? 나는 $ 1 $와 $ 2y $ 10에 대한 해시를 만들기 위해 라이브러리를 사용하려고 시도하고 있으며 소금 값에 대한 인수 예외를 계속 제공합니다. 나는 길이가 8 인 소금을 가지고있다. 12345678. 그 다음 나는 "$ 1 $"을 붙이고 "$"를 추가하여 총 12 글자 (PHP 암호문과 같은 형식)로 만듭니다. 따라서 최종 문자열은 "$ 1 $ 12345678 $"이며 운이 없습니다. 예외를 throw합니다. 소금은 어떤 형식이어야합니까? $ 2y $ 10에 대해서도 마찬가지입니다. 이를 위해 PHP 암호 함수를 복제해야합니다. –