
Estou tentando fazer uma coisa muito simples, ou seja, usar uma senha de 64 bits e um texto simples de 64 bits (ambos em hexadecimal) e criptografá-los com um DES simples e antigo.
meu script fica assim:
plaintext=`echo -n "$2" | sed 's/\(..\)/\\\x\1/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 retornando do openssl, espero obter apenas 64 bits de dados, em vez disso, recebo 512. Não sei como solicitar explicitamente uma versão de 64 bits do DES, é possível?
Nota: Os valores usados acima são de "H. Katzan, The Standard Data Encryption Algorithm, pp75-94, Petrocelli Books Inc., New York, 1977" é:
Key: 5B5A57676A56676E
Plaintext: 675A69675E5A6B5A
Ciphertext: 974AFFBF86022D1F
Responder1
O texto simples também é fornecido em hexadecimal. Você deve convertê-lo novamente para binário antes de criptografar.