php не различает словари и кортежи / списки, поэтому:
function normalize($input=null) {
if (! is_array($input)) {
return strval($input);
}
$res = '';
$keys = array_keys($input);
sort($keys);
foreach ($keys as $k) {
if (!is_int($k)) $res .= $k;
$res .= normalize($v);
}
return $res;
}
Примечательно, что эта сериализация отстой, так как она не может отличить целые числа от чисел. Вы действительно должны использовать JSON (в php , а также Python ), который является независимым от языка, читаемым человеком форматом сериализации.
Вместо использования этой строки для аутентификации нужно просто использовать хэш поверх сериализации JSON.