Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Opa.
Seguinte, to fazendo uma Aplicação que vai fazer OAuth no youtube, pra mim poder enviar vídeos direto de meu site.
Para fazer Oauth nos serviços do google, eu ganho uma consumer_key e uma consumer_secret.
Na hora de enviar os dados pra autenticar, eu escolho uma forma de criptografia, o oauth_signature_method, que pode ser RSA-SHA1 ou HMAC-SHA1.
Então eu preciso de uma função pra fazer alguma dessas criptografias. Pelo que vi, o resultado precisa voltar com 32 caracteres.
Tentei utilizar funções como esta:
function hmac_sha1($data, $key, $raw_output=FALSE)
{
$block_size = 64; // SHA-1 block size
if (strlen($key) > $block_size) {
$k = pack("H*", sha1($key));
} else {
$k = str_pad($key, $block_Size, "\x00", STR_PAD_RIGHT);
}
$ki = '';
for($i = 0; $i < $block_size; $i++) {
$ki .= chr(ord(substr($k, $i, 1)) ^ 0x36);
}
$ko = '';
for($i = 0; $i < $block_size; $i++) {
$ko .= chr(ord(substr($k, $i, 1)) ^ 0x5C);
}
$h = sha1($ko . pack('H*', sha1($ki . $data)));
if ($raw_output) {
return pack('H*', $h);
} else {
return $h;
}
}
mas volta um resultado com 40 caracteres.
Alguém sabe como posso resolver isso?
Carregando comentários...