암호 해싱에 무엇을 사용합니까? JBCrypt를 사용하지 않는 이유가 있습니까?

StackOverflow https://stackoverflow.com/questions/622732

문제

나는 사용할 계획이다 JBCrypt 새로운 웹 애플리케이션에서 암호 해싱의 경우, 내가 읽은 내용에서 최고라고 가정합니다. 내가 그것을 사용하지 않았기 때문에 그것을 사용하지 않을 이유가 있는지 조사합니다.

나는 이것을 가지고있다:

  • Maven 저장소 (Mvnrepository.org에서 JBCrypt 및 BCrypt를 검색 함)에서 찾지 못했습니다. 가능한 경우 Maven 저장소를 사용하여 종속성을 관리하고 싶습니다. JBCrypt가 암호 해싱을위한 최고의 품종 솔루션이라면 내 자신의 로컬 저장소를 설정하고 그런 식으로 사용할 수 있도록해야합니다. 아니면 방금 놓친 적이 있습니까? 어딘가에 있을까요?
  • 버전 0.2에 불과하지만 어쨌든 안정적이고 버전 번호가 낮은 이유는 다른 원인이 있습니까?
도움이 되었습니까?

해결책

JBCrypt는 아마도 암호에 대한 암호화 알고리즘으로 괜찮을 것입니다. Blowfish는 비교적 강합니다. Blowfish 자체에는보고 된 일부 구현 결함이 있었지만 JBCrypt에 대해보고 된 것은 없습니다. 반면에 Blowfish는 다른 알고리즘만큼 크게 테스트되지 않았습니다. 금이 가다-스타일의 알려진 PLAINTXT 공격은 종종 예상보다 더 잘 작동하고 놀라운 암호화 괴짜입니다.

그래서 여기에 제안한 내용은 다음과 같습니다.

  • UNIX 시스템에서 /etc /shadow를 사용하는 것처럼 암호화 된 암호 파일을 합리적으로 할 수있는 정도로 암호화 된 비밀번호 파일을 보호하십시오.
  • Nikhil의 제안과는 달리, i ~일 것이다 두 가지 이유로 소스를 버전 제어로 끌어 당기십시오. 가능성 jbcrypt를하는 사람은 다른 것들로 넘어갈 것이며, 당신은 배달 직전에 매달려있는 것을 발견하고 싶지 않습니다 (당신이 알게 될 때 필연적으로) 이런 상황에서, 나는 출처를 배치 할 것입니다. 마치 코드가있는 것처럼 버전 컨트롤에 새 버전을 직접 구축 한 것처럼 변경 사항을 삽입 할 수 있습니다. 평소보다 더 복잡 할 필요는 없습니다.

다른 팁

성숙하지 않다는 우려에 관한 한, 나는 당신이 동일한 결과를 얻은 지 확인하기 위해 jbcrypt와 더 입증 된 bcrypt의 결과를 비교하는 자신의 Junit 테스트를 설정하고 JBCrypt에 기여할 것을 제안했습니다. 프로젝트.

그러나 이미 완료되었습니다.

... 라이브러리의 올바른 작동을 확인하고 BCRYPT 알고리즘의 정식 C 구현과의 호환성을 확인하기 위해 일련의 주니트 단위 테스트 세트를 제공합니다.

Junit 테스트를 숙독하여 만족도의 수준을 충족하는지 확인하는 것은 내가 시작하는 곳입니다 ...

bcrypt 자체가 성숙하고 작고 표준화 된 래퍼가 특별한 일을하지 않기 때문에 안정성이 문제가 될 것입니다. Damien Miller의 다른 Bcrypt 포장지에 만족합니다. 파이썬-브리트, 버전 0.1에만 해당됩니다.

나는 Maven에 익숙하지 않지만 (Heresy Alert!) bcrypt만큼 단순한 구성 요소에 대한 버전 제어가 필요하다고 의심합니다. 이 사이트를 인용하기 위해 V0.1에서 V0.2 로의 변경 사항은 "정확성, 오타 및 API 조정 (완전히 뒤로 호환)이었으며 TODO 목록은 비어 있습니다.

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