asp classic — генерирование хеша с использованием PHASH с переполнением стека

Как я могу создать PHASH значение из строки в PHP?

Я унаследовал ASP кодовая база, которая использует PHASH с strings (не пути к изображениям). Из исследований, PHASH используется для изображений.

В настоящее время я переписываю эту часть кодовой базы, используя PHPи есть несколько библиотек, которые кажутся полезными:

тем не мение, они оба требуют пути к изображению. я пробовал jenssegers/imagehash и это вызывает исключение, когда я передаю случайную строку.

Код ниже как PHASH в настоящее время используется в устаревшей кодовой базе:

sLoginPassword = RequestValue("Password")
SQLVal(PHASH(sLoginPassword))

PHASH пользовательская функция внутри кодовой базы, я не смог найти ее из-за смешанного кожуха (PHash против PHASH).

К счастью, я нашел следующее Так ответь который написан на C#, Спасибо @ Lathejockey81 за предоставление ответа, я преобразовал его в PHP ниже (как ответ).

0

Решение

изготовленный на заказ PHASH функция преобразована из Так ответь:

function PHASH($string)
{
$value = trim(strtoupper($string));

$dAccumulator = 0;
$asciiBytes = [];

for($i = 0; $i < strlen($value); $i++) {
$asciiBytes[] = ord($value[$i]);
}

for($i = 0; $i < count($asciiBytes); $i++) {
if(($i & 1) == 1) {
$dAccumulator = cos($dAccumulator + (float) $asciiBytes[$i]);
} else {
$dAccumulator = sin($dAccumulator + (float) $asciiBytes[$i]);
}
}
$dAccumulator = $dAccumulator * pow(10, 9);

return round($dAccumulator);
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]