암호화에 대한 복어 기반 해시 지원 활성화


13

Linux (Debian) 서버에서 쉐도우 패스워드와 PHP에 대해 crypt_blowfish 지원을 어떻게 활성화합니까?

내가 말하는 겁니다 오픈 BSD 스타일 복어 기반 bcrypt CRYPT_BLOWFISH으로 PHP에 알려진.

내가 아는 한 데비안 패키지가 없다면 PHP를 위해이 해싱 알고리즘을 활성화하기 위해 어떤 다른 옵션이 필요합니까?

참고 :
PHP의 crypt ( ) 함수는 기본 운영 체제에서 제공 하는 C 라이브러리 crypt (3) 함수 와 비교적 직접 인터페이스 합니다.

업데이트
패키지 이름은 명확해야합니다. PEAR CRYPT_BLOWFISH 패키지는 빠른 허용, 드롭 인 PHP의 Mcrypt 라이브러리 확장에 대한 대체 양방향 복어 암호화.

또한 데비안 BCrypt 패키지 는 '정상적인'양방향 복어 알고리즘의 구현입니다.

내가 찾고있는 것은 해싱 암호를위한 Bcrypt-hash 구현입니다.


"Crypt_blowfish 배 설치"가 작동하지 않습니까?
cori

pear crypt_blowfish 패키지는 '정상적인'양방향 복어 암호화 알고리즘입니다. 복어 기반 해싱 알고리즘을 찾고 있습니다.
Jacco 2016 년

아, 이제 문제가 보입니다.
cori 2016 년

당신이 당신의 현재 담당자보다 질문에 더 높은 현상금을 가질 수 있다는 것을 몰랐습니다. 흥미 롭군
Copas

담당자는 즉시 공제되므로 담당자는 ~ 200 명이고 이제는 ~ 50 명입니다.
ceejayoz

답변:


9

데비안에서 설치해야 할 패키지는 libpam-unix2입니다.

그런 다음에서 아래 파일을 편집하고 /etc/pam.d/모든 pam_unix.so사용법을 pam_unix2.so다음으로 변경해야 합니다 .

  • 공통 계좌
  • 공동 인증
  • 공통 비밀번호
  • 공동 세션

마지막으로 common-password파일을 편집 하고 "md5"매개 변수를 "blowfish"로 바꾸십시오.

이러한 수정 후 업데이트 된 비밀번호는 복어를 사용하여 해시됩니다. 기존 섀도 비밀번호는 수정되지 않습니다. 출처

PHP에서 복어를 사용하려면에 복어 소금을 제공합니다 crypt(). 이처럼 :

crypt('sting', '$2a$07$' . substr('saltsaltsalt', 0, CRYPT_SALT_LENGTH) ) 

먼저 CRYPT_BLOWFISH == 1인지 확인해야합니다. 그리고 22 자 이상인 충분히 긴 소금을 사용해야합니다. 출처


흠, 이러한 변경을 한 후에 CRYPT_BLOWFISH는 여전히 1이 아닙니다.
Kzqai

1
주의 사항 : pam_unix2 버전이 현재 사용자 비밀번호에 사용되는 해싱 알고리즘을 지원하지 않으면 해당 사용자가 로그인 할 수 없습니다. 이것이 데비안 상자에서 발생한 것 같습니다. 일부 계정은 SHA512를 사용하고 있었고 로그인 할 수 없지만 MD5를 사용한 계정은 사용할 수있었습니다. 루트에서 passwd실행할 때 이전 비밀번호를 요청하지 않으므로 루트에서 해당 비밀번호를 설정할 수 있습니다 . 중요 : 다시 로그인 할 수있을 때까지 루트 세션을 열어 두십시오!
Tom Zych
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.