PHP 로그인 시스템에 대한 소금 생성 코드 확장 및 사용
-
16-12-2019 - |
문제
WebProject 용 PHP / MySQL 로그인 시스템에서 작업하고 있습니다.웹 ive의 기사를 많이 통해보고있는 후에는 기본 프레임 워크를 제시하고 일부 코드를 작성하기 시작했습니다.그러나 ive는 암호 암호화에서 약간의 불가사물에옵니다.
야간에 독서 Ive 가치가있는 후 :
- 적어도 SHA1 또는 SHA2 를 가진 사용자 암호를 받아야합니다.
- 또한 무작위로 생성 된 소금을 사용해야합니다 (이것은 내가 필요로하는 것입니다)을 사용해야합니다. 를 암호화하기 전에 암호에 추가해야합니다.
- 해시 암호와 무작위로 생성 된 소금을 데이터베이스에 저장 한 다음 쿼리 및 결합 / 암호화 된 다음 사용자 해시 암호에 대해 확인해야합니다.
내 문제가 무작위로 소금을 생성하는 것,
해결책
내가 생각할 수있는 가능성 :
-
mt_rand () 루프에서 ASCII 코드를 선택하려면 < href="http://php.net/chr%28%29"rel="nofollow"> chr () 및 연결 소금에
이것은 길이가있는 소금을 만들 수 있습니다.
-
사용 가능한 문자로 문자열을 정의하고, 루프에서 mt_rand () mt_rand () random 위치를 선택하십시오 "Nofollow"> substr () 또는 mb_substr () 및 연결 소금으로
선택한 문자 세트와 길이가있는 염을 만들 수 있습니다.
-
임의의 문자열을 생성하는 내장 기능 (예 : UniQID () ) 및 선택적으로 해시 .
이것은 빠르고 간단합니다.
일반적으로 두 번째 옵션을 사용합니다.
다른 팁
UNIQID ()?
제휴하지 않습니다 StackOverflow