¿Cómo calculo el hash md2 con OpenSSL?

3
$ echo -n email | openssl dgst -md2
unknown option '-md2'
options are
-c              to output the digest with separating colons
-r              to output the digest in coreutils format
-d              to output debug info
-hex            output as hex dump
-binary         output in binary form
-hmac arg       set the HMAC key to arg
-non-fips-allow allow use of non FIPS digest
-sign   file    sign digest using private key in file
-verify file    verify a signature using public key in file
-prverify file  verify a signature using private key in file
-keyform arg    key file format (PEM or ENGINE)
-out filename   output to filename rather than stdout
-signature file signature to verify
-sigopt nm:v    signature parameter
-hmac key       create hashed MAC with key
-mac algorithm  create MAC (not neccessarily HMAC)
-macopt nm:v    MAC algorithm parameters or key
-engine e       use engine e, possibly a hardware device.
-md4            to use the md4 message digest algorithm
-md5            to use the md5 message digest algorithm
-mdc2           to use the mdc2 message digest algorithm
-ripemd160      to use the ripemd160 message digest algorithm
-sha            to use the sha message digest algorithm
-sha1           to use the sha1 message digest algorithm
-sha224         to use the sha224 message digest algorithm
-sha256         to use the sha256 message digest algorithm
-sha384         to use the sha384 message digest algorithm
-sha512         to use the sha512 message digest algorithm
-whirlpool      to use the whirlpool message digest algorithm



$ openssl -h
openssl:Error: '-h' is an invalid command.

Standard commands
asn1parse         ca                ciphers           cms
crl               crl2pkcs7         dgst              dh
dhparam           dsa               dsaparam          ec
ecparam           enc               engine            errstr
gendh             gendsa            genpkey           genrsa
nseq              ocsp              passwd            pkcs12
pkcs7             pkcs8             pkey              pkeyparam
pkeyutl           prime             rand              req
rsa               rsautl            s_client          s_server
s_time            sess_id           smime             speed
spkac             srp               ts                verify
version           x509

Message Digest commands (see the 'dgst' command for more details)
md2               md4               md5               mdc2
rmd160            sha               sha1

$ man openssl | grep md2
       md2       MD2 Digest

Entonces, ¿cómo calculo el hash md2 de algo usando OpenSSL? Dice que soporta md2, pero no lo hace.

    
pregunta Chloe 14.11.2017 - 01:43
fuente

1 respuesta

4

De forma predeterminada, OpenSSL se crea sin el soporte de MD2. Las personas se han quejado desde 2010 que la opción aún se encuentra en la lista de documentos.

Lo que puedes hacer es compilar OpenSSL con enable-md2 . Sin embargo, esto aún no devuelve la opción openssl dgst -md2 .

Para eso también necesitas agregar la siguiente línea en crypto/evp/c_alld.c :

void OpenSSL_add_all_digests(void)
{
    ...
    EVP_add_digest(EVP_md2());
    ...
}

(Si lo desea como una opción de primer nivel, también debe agregar la misma línea en ssl/ssl_algs.c .)

Luego, simplemente compilalo .  Lo que hice:

$ ./Configure linux-x86_64 enable-md2
...
$ make depend
...
$ make
...
$ echo -n foo | apps/openssl md2
(stdin)= d11f8ce29210b4b50c5e67533b699d02
$ echo -n foo | apps/openssl dgst -md2
(stdin)= d11f8ce29210b4b50c5e67533b699d02

(Puede descargar el archivo comprimido desde aquí .)

    
respondido por el Arminius 14.11.2017 - 02:58
fuente

Lea otras preguntas en las etiquetas