Fixed hash lookup and improved ID generation.

This commit is contained in:
flash 2022-07-06 17:05:35 +00:00
parent 3df891921c
commit 0005813d4b

View file

@ -193,13 +193,11 @@ final class Upload implements JsonSerializable {
} }
public static function generateId(int $length = 32): string { public static function generateId(int $length = 32): string {
$token = random_bytes($length); $bytes = str_repeat("\0", $length);
$chars = strlen(self::ID_CHARS); $chars = strlen(self::ID_CHARS);
for($i = 0; $i < $length; ++$i)
for($i = 0; $i < $length; $i++) $bytes[$i] = self::ID_CHARS[random_int(0, $chars - 1)];
$token[$i] = self::ID_CHARS[ord($token[$i]) % $chars]; return $bytes;
return $token;
} }
public static function create( public static function create(
@ -293,7 +291,7 @@ final class Upload implements JsonSerializable {
. ' UNIX_TIMESTAMP(`upload_dmca`) AS `upload_dmca`,' . ' UNIX_TIMESTAMP(`upload_dmca`) AS `upload_dmca`,'
. ' INET6_NTOA(`upload_ip`) AS `upload_ip`,' . ' INET6_NTOA(`upload_ip`) AS `upload_ip`,'
. ' LOWER(HEX(`upload_hash`)) AS `upload_hash`' . ' LOWER(HEX(`upload_hash`)) AS `upload_hash`'
. ' FROM `prm_uploads` WHERE `upload_id` = `upload_hash` = UNHEX(?)' . ' FROM `prm_uploads` WHERE `upload_hash` = UNHEX(?)'
); );
$get->addParameter(1, $hash, DbType::STRING); $get->addParameter(1, $hash, DbType::STRING);
$get->execute(); $get->execute();