Título: Entendiendo y traduciendo el pseudocódigo de la funcion para calcular hmac Publicado por: Carloswaldo en 18 Julio 2009, 20:59 pm Bueno pues me he puesto a tratar de comprender y traducir el pseudocódigo que aparece en wikipedia de la función para calcular hmac, osea este:
Código: function hmac (key, message) opad = [0x5c * blocksize] // Where blocksize is that of the underlying hash function ipad = [0x36 * blocksize] if (length(key) > blocksize) then key = hash(key) // keys longer than blocksize are shortened end if for i from 0 to length(key) - 1 step 1 ipad[i] = ipad[i] ⊕ key[i] // Where ⊕ is exclusive or (XOR) opad[i] = opad[i] ⊕ key[i] end for return hash(opad ++ hash(ipad ++ message)) // Where ++ is concatenation end function Y me ha quedado esto: Código
Le he hecho tantos cambios que ya no se donde mismo está el error. xD Las únicas 2 líneas de código que no se que significan son las dos primeras. Código: opad = [0x5c * blocksize] // Where blocksize is that of the underlying hash function ipad = [0x36 * blocksize] Se que opad y ipad tienen que ser arrays, 0x5c y 0x36 son valores hexadecimales fijos, y blocksize es un valor fijo (512) que en hex sería 200. Lo que no se es que significan esas lineas, como tengo que declarar esos arrays y de que tamaño tienen que ser. Algún alma caritativa se apiade de mí y me pueda ayudar un poco. :) Título: Re: Entendiendo y traduciendo el pseudocódigo de la funcion para calcular hmac Publicado por: cobein en 18 Julio 2009, 22:01 pm opad e ipad parecen byte arrays, el tamano es valor * blocksize, blocksize es el mismo que se usa en el hash.
Título: Re: Entendiendo y traduciendo el pseudocódigo de la funcion para calcular hmac Publicado por: el_c0c0 en 18 Julio 2009, 23:03 pm no se si va al caso pero fijate esto:
primer item: For I = 0 To Len(key) ' aca deberia ir -1 segundo item: hmac = a.SHA1(opad & a.SHA1(ipad & cadena)) ' opad e ipad son arrays, deberias traducirlo a un string (con strconv) para poder llamar a esa funcion saludos Título: Re: Entendiendo y traduciendo el pseudocódigo de la funcion para calcular hmac Publicado por: Dessa en 18 Julio 2009, 23:31 pm Tambien fijate porque llamas a la variable "I" en el primer for.
|