P粉5556827182023-08-25 00:55:35
예, 올바르게 이해하셨습니다. 비밀번호 해시() 함수는 자체적으로 솔트를 생성하고 생성된 해시 값에 포함합니다. 솔트가 제 역할을 하는 것으로 알려져 있더라도 데이터베이스에 솔트를 저장하는 것은 절대적으로 옳습니다.
으아아아당신이 언급한 두 번째 소금(파일에 저장된 것)은 실제로는 Pepper 또는 서버 측 키입니다. 해싱하기 전에 소금처럼 추가하면 후추를 추가하는 것입니다. 하지만 더 좋은 방법이 있습니다. 먼저 해시를 계산한 다음 서버측 키를 사용하여 해시를 암호화(양방향)하는 것입니다. 이를 통해 필요한 경우 키를 변경할 수 있습니다.
솔트와는 달리 이 키는 비밀로 유지되어야 합니다. 사람들은 종종 그것을 섞어서 소금을 숨기려고 노력하지만, 소금이 제 역할을 하도록 두고 열쇠로 비밀을 추가하는 것이 더 좋습니다.
P粉3774120962023-08-25 00:34:19
비밀번호를 저장하려면 password_hash
를 사용하는 것이 좋습니다. 데이터베이스와 파일로 분리하지 마세요.
다음과 같은 입력이 있다고 가정합니다:
으아아아먼저 다음을 수행하여 비밀번호를 해시합니다.
으아아아그런 다음 출력을 봅니다.
으아아아보시다시피 해시되어 있습니다. (나는 당신이 이 단계를 따랐다고 가정합니다).
이제 이 해시된 비밀번호를 데이터베이스에 저장했으므로 비밀번호 열이 해시 값(최소 60자 이상)을 수용할 만큼 충분히 큰지 확인하세요. 사용자가 로그인을 요청하면 다음과 같이 데이터베이스의 해시를 사용하여 입력한 비밀번호를 확인할 수 있습니다.
으아아아