Come si calcola l'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

Quindi come faccio a calcolare l'hash md2 di qualcosa che usa OpenSSL? Dice che supporta md2, ma non lo fa.

    
posta Chloe 14.11.2017 - 01:43
fonte

1 risposta

4

Per impostazione predefinita, OpenSSL viene creato senza il supporto MD2. Persone si sono lamentati dal 2010 che l'opzione è ancora elencata nei documenti.

Quello che puoi fare è creare OpenSSL tu stesso con enable-md2 . Tuttavia, questo non riporta ancora l'opzione openssl dgst -md2 .

Per questo devi aggiungere anche la seguente riga in crypto/evp/c_alld.c :

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

(Se lo vuoi come opzione di primo livello, dovresti anche aggiungere la stessa riga in ssl/ssl_algs.c .)

Quindi solo costruiscilo .  Cosa ho fatto:

$ ./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

(Puoi scaricare il tarball da qui .)

    
risposta data 14.11.2017 - 02:58
fonte

Leggi altre domande sui tag