나는 PHP's crypt() 함수에서 읽고 있습니다. 나는 대부분의 예에서 볼 수있는 소금 문자열의 끝에서 후행 '$'기호의 의미는 무엇
php crypt - 뒤의 달러 기호 - 해시에서 소금 부분 만 빼내십시오. 소금을 채우십시오.
- 나는에 대한 몇 가지 질문이 있습니다. 이 설명서는 소금 줄을 끝내는 방법에 대해 특별히 언급하지 않았습니다.
어쨌든 해시에서 소금 부분 만 추출 할 수 있습니까? crypt() 함수는 내부적으로 비교를 수행 할 때부터 수행 할 것이기 때문에 필자는 그럴 필요가 없다는 것을 알고 있습니다. 그러나 그것의 단지 지옥을 위해. 소금을보기 위해서.
이
또한$pass = 'secret'; $salt = '$2y$07$usesomesillystringforsalt$'; echo crypt($pass, $salt);
이의 출력은$2y$07$usesomesillystringforex.u2VJUMLRWaJNuw0Hu2FvCEimdeYVO
이고 나는 소금과 해시 사이의 경계에 대한 확신입니다 - EGS이 코드를 고려하십시오. 소금이나 해시의 'forex'하위 문자열 부분에 'e'가 있습니까? 내가 소금 부분 만 추출하면 훨씬 쉬울거야. "$ 2A 호 $", "$ 배 $"또는 "$의 2Y을 $", 두 자리 :- 토굴() 서, 다음과 같이 복어는 소금 해싱 ...
말한다 알파벳 "//09A-Za-z"에서 $, 22 문자로 표시됩니다. ...
이 항목에서 비용 매개 변수 뒤에 $ 기호 다음에 22자를 입력해야합니다. 그러나이 코드를 고려 -
가
$pass = 'secret'; $salt = '$2y$07$somesillystring$'; echo crypt($pass, $salt);
이의 출력은 $2y$07$somesillystring$$$$$$.O6JLPmGlDvy4BicGmkuBD.DN8OYiIoG
입니다. 내 질문은 비용 매개 변수 다음에 $ 기호 다음에 최대 21 자까지만 채워지는 이유입니다. 나는 그것을 최대 22 문자로 패딩 될 것으로 예상했다.
, 당신은 PHP 5.5 이상에 대한 접미사'$ '(5.4 최신 버전의 심지어 일부가 있어야합니다 - 5.4.37 우분투에서 작동하지 않습니다). 좋은 소식은'$ '를 기존 코드에 추가해도 결과가 변경되지 않는다는 것입니다 : http://3v4l.org/VA1dS –