Criptografar usando DES de 64 bits com o openssl

1

Estou tentando fazer uma coisa muito simples, usando uma senha de 64 bits e um texto simples de 64 bits (ambos em hexadecimal) e criptografando-a com DES antigo simples.

meu script é assim:

plaintext='echo -n "$2" | sed 's/\(..\)/\\x/g''
key=$1
printf "$plaintext" | openssl enc -nosalt -e -des -nopad -K "$key" -iv "0000000000000000" | od --format=x1 --width=32 --address-radix=n | sed 's/ //g'

Eu executo e obtenho o seguinte resultado:

./des_enc 5B5A57676A56676E 675A69675E5A6B5A
b617e2c84a4fba2149dd7132433031392257b99d9284b1031c351c15825aca52

O problema é que há muitos dados voltando do openssl, espero obter apenas 64 bits de dados, em vez disso, recebo 512. Não sei como solicitar explícito uma versão de 64 bits do DES, é mesmo possível?

Nota: Os valores usados acima são de "H. Katzan, O algoritmo padrão de criptografia de dados, pp. 75-94, Petrocelli Books Inc., Nova York, 1977" é:

Key:        5B5A57676A56676E
Plaintext:  675A69675E5A6B5A
Ciphertext: 974AFFBF86022D1F
    
por Xander Tulip 12.09.2011 / 06:06

1 resposta

0

O texto simples é dado em hexadecimal também. Você deve convertê-lo de volta para binário antes de criptografar.

    
por 12.09.2011 / 09:32