PHP - Генерируйте 8 символьных хешей от целого числа

Существует ли способ взять какое-либо число, от говорят, 1 - 40 000 и генерируют 8 символьных хешей?

Я думал об использовании base_convert но не мог выяснить способ вынудить это быть 8 символьными хешами.

Любая справка ценилась бы!

7
задан T Zengerink 23 May 2012 в 12:12
поделиться

5 ответов

Почему бы вам просто не запустить md5 и взять первые 8 символов?

Поскольку вам нужен хеш, не имеет значения, отбрасываются ли части, а тот же ввод создаст тот же хеш.

$hash = substr(md5($num), 0, 8);
24
ответ дан 6 December 2019 в 06:13
поделиться

есть много способов ...

один пример

$x = ?
$s = '';
for ($i=0;$i<8;++$i)
{
    $s .= chr( $x%26 + ord('a') );
    $x /= 26;
}
0
ответ дан 6 December 2019 в 06:13
поделиться
$hash = substr(hash("sha256",$num), 0, 8);
0
ответ дан 6 December 2019 в 06:13
поделиться
>>> math.exp(math.log(40000)/8)
3.7606030930863934

Следовательно, вам нужны 4 символа-цифры для создания 8-значного хэша из 40000:

sprintf("%08s", base_convert($n, 10, 4))
4
ответ дан 6 December 2019 в 06:13
поделиться

Итак, вы хотите воспроизводимо преобразовать 6-значное число в 8-значную строку?

sprintf("%08d", $number);

Конечно, хэш не является обратимым - но без соли / IV его можно легко взломать. Лучшим решением может быть следующее:

substr(sha1($number . $some_secret),0,8);

C.

0
ответ дан 6 December 2019 в 06:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: