2015-02-20 3 views
1

Я пытаюсь порт большой кусок кода Python для PHP - при этом, так что я нашел одну строку, которую я не могу найти эквивалент:Преобразовать код Python UUID хеширования PHP

instance = resp.get(
     'instance', 
     uuid.uuid4().hex.encode('utf-8') 
    ) 

    sha = hashlib.sha1(
     self.username.encode('utf-8') + instance 
    ) 
    self.params.update({'id': sha.hexdigest().upper()}) 

Я нашел https://github.com/ramsey/uuid генерировать uuid4 и пытался имитировать выше примерно так:

if (isset($resp['instance'])) 
    { 
     $instance = $resp['instance']; 
    } 
    else 
    { 
     $uuid4 = Uuid::uuid4(); 
     $instance = utf8_encode(dechex($uuid4->toString())); 
    } 

    $sha = sha1(utf8_encode($this->username) . $instance); 

    $this->params['id'] = strtoupper($sha); 

Это, кажется, не обеспечивают те же результаты. Может ли кто-нибудь помочь мне получить такой же результат в php, как в python. Благодарю.

ответ

0

Оказывается, что функция dechex не совпадает с шестью python. В этом случае результат шестнадцатеричной функции удалял тире из uuid. Разрешил его str_replace.

Смежные вопросы