2013-07-17 2 views
1

this 설정을 사용하여 영구 로그인을 만들고 있습니다.PHP 영구 로그인을 위해 임의의 128 비트 생성

나는 이것이 사용자 토큰과 쿠키 토큰의 해시를 가진 여분의 테이블을 필요로한다는 것을 이해했다. 그런 다음 한 명의 사용자에 대해 여러 개의 토큰을 가질 수 있습니다.

내가 겪고있는 문제는 임의의 토큰이 필요하다는 것입니다. 기사에서 그들은 128 비트가되도록 권고합니다. 16 진수 값은 16 개입니다. 그러나 이것들은 매우 중요하기 때문에 진정으로 무작위 적이어야합니다. 쿠키를 저장하려면 bcrypt() 쿠키를 사용하십시오. 따라서 db가 손상된 경우 쿠키를 사용하여 다른 계정에 로그인 할 수 있습니다.

TL : DR : 진정한 무작위 128 비트 문자열/숫자/...이 필요합니다. 몇 가지 방법을 찾았지만 실제로 어떤 것이 무작위인지는 알지 못합니다.

+0

실제 무작위성에 대한 척도는 무엇입니까? –

+0

물론 서버에 의해 처리 되었기 때문에 결코 무작위 적이 아니지만 무작위로 얻을 수 있습니다. – jdepypere

+0

잘 구현 된 의사 난수 생성기는 실용적인 목적으로 무작위입니다 –

답변

2

휠을 재발 명하지 마십시오 (특히 암호화의 경우 99 % 나 더 나 빠지게됩니다).
OpenSSL implementation과 같은 것을 시도해보십시오.

+0

그러므로'openssl_random_pseudo_bytes (16);는 꽤 무작위이어야합니까? 여전히 16 진수로 변환해야합니까 아니면 16 진수입니까? – jdepypere

+1

바이너리를 리턴 할 것이므로'pack' 또는'bin2hex'를 사용하여 16 진수로 변환해야합니다. 무작위에 관해서는, 그것이 암호로 안전한 경우에, 얻는 것처럼 대략 좋다. –

관련 문제