Pergunta

Estou tentando criar um gerador de senha única para um telefone.No RFC2289 ele especifica que devo dobrar a saída do MD5, estou usando o castelo inflável MD5 e não consigo descobrir como dobrar a saída da matriz de bytes.

for (int i = 0; i < 8; i++)
{
    md5[i] ^= md5[i+8];
}

Isso é o que eu tenho até agora

Foi útil?

Solução

Provavelmente, você quer isso:

for (int i = 0; i < 8; ++i)
    md5[i] ^= md5[i + 8];
return Arrays.copyOf(md5, 8);

Dessa forma, apenas os primeiros 64 bits (que são usados ​​pelo OTP) são retornados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top