나는 임의의 소금 및 암호 해싱을 생성하기 위해 phpass를 사용하지만 내 질문은 고유 한 토큰을 만드는 암호 재설정과 같은 것입니다. 기본적으로 16 바이트의 임의의 데이터를 가져 와서 sha256 해시를 통과시킵니다. 이 좋은 연습 아니면 그냥 그것이 있어야 데이터토큰에 대한 임의의 데이터 해시로 보안이 향상됩니까?
private static function get_random_bytes($count) {
$output = '';
if (is_readable('/dev/urandom') &&
($fh = @fopen('/dev/urandom', 'rb'))) {
$output = fread($fh, $count);
fclose($fh);
}
$random_state = microtime();
if (function_exists('getmypid'))
$random_state .= getmypid();
if (strlen($output) < $count) {
$output = '';
for ($i = 0; $i < $count; $i += 16) {
$random_state =
md5(microtime() . $random_state);
$output .=
pack('H*', md5($random_state));
}
$output = substr($output, 0, $count);
}
return $output;
}
나는 임의의 바이트를 얻기 위해 사용하는 함수를 추가했는데, 보통 32를 얻은 다음이를 사용하여 알파 숫자 문자열을 생성합니다. 하지만 질문은 어떤 방식 으로든 보안을 저하시키는 것이 아닌가 생각됩니다. – Brian
더 자세히 답변 된 질문에 대한 답변이 확장되었습니다. – regality