[A-ZA에PHP 토굴() 복어 염 길이 역 호환
$ 2A $으로 2 자리수 $ 21 개 문자 -Z0-9]
여기서 세 번째 $가 21이 아닌 22 번째 문자를 쓰는 실수를했습니다. 그러나 오류가 발생하지 않았으므로 오류가 발생하지 않았습니다.
그것은 내 바탕 화면에서 실행되는 Windows 및 PHP 5.4.4와 AWS ec2에서 PHP가 5.3.x 인 아마존 리눅스를 실행하는데 너무 짧은 소금을 사용합니다.
어느 날 AWS php를 5.5.14로 업데이트했습니다. 문제가 발생했습니다. crypt()는 항상 * 0을 반환합니다.
일부 시도 후에 소금 끝에 $를 추가하여 22 자로되었습니다. 그리고 다시 작동하여 이전과 같은 해시 문자열을 반환합니다. 복어 규칙에 복종하지 않지만 문자는 [./a-zA-Z0-9]
하지만 이제는이 사이트를 PHP 5.5.14로 openSuSE 13.1을 실행하는 다른 컴퓨터에 복제합니다.이 소금은 실패했습니다. 다시.
PHP를 5.4.20으로 다운 그레이드하지만 도움은되지 않습니다.
새 사이트에는 이전 데이터베이스가 필요하므로 암호 해시 작업을해야합니다.
이 복어 염 길이 오류 호환성 문제에 영향을주는 라이브러리 또는 모듈은 무엇입니까? Tt는 PHP 버전이 아닌 것 같습니다. AWS 5.5.14
또 다른 마법의 숯이 저를 구할 수 있습니까? 나는 각 꼬리표를 [./a-zA-Z0-9]로 대체하려고했지만 행운은 없다. 해시 문자열은 다르다. ...
직접 소금을 생성하는 대신 PHP의 [해싱 함수] (http://php.net/manual/en/function.password-hash.php)를 사용하지 않는 이유는 무엇입니까? – PeeHaa
기존 시스템이 여전히 작동해야합니다. –
"하지만 이제는 openSuSE 13.1에서 PHP 5.5.14로 다른 사이트를 구축했습니다.이 소금은 다시 실패했습니다."- 거기에 맞는 도구를 사용할 수없는 이유는 전혀 없습니다. – PeeHaa