Bonjour,
Je dois comparer (via un script Shell AIX si possible) une empreinte (SHA256 base64) générée en Java (à base de org.apache.commons.codec.binary.Base64) avec celle d'un fichier. Le calcul de l'empreinte du fichier sur https://www.online-convert.com est bon :
Avec openssl j’obtiens une empreinte différente :hex: 09a5cfc0e5b8372fcb072598339704bd07b193fc7d99e06d88c65a94baa37b3c
…
base64: CaXPwOW4Ny/LByWYM5cEvQexk/x9meBtiMZalLqjezw=
En python j’ai encore quelque chose de différent :> echo -n monFichier.pdf | openssl dgst -sha256 | openssl enc -base64 -A
WARNING: can't open config file: /var/ssl/openssl.cnf
WARNING: can't open config file: /var/ssl/openssl.cnf
KHN0ZGluKT0gNzEzYWVmNzkxZmZkMmRlNzFkZGJhNjBkMzZhYzI1NTU3ZGY4ZDVkOWU3MDk4NzU3MWE1N2VkYmFiNmE0ZTdhYwo=
Avec shasum j’obtiens la bonne empreinte en hex, mais le passage en base64 avec open ssl donne un résultat différent :> python empreinte.py monFichier.pdf
MDlhNWNmYzBlNWI4MzcyZmNiMDcyNTk4MzM5NzA0YmQwN2IxOTNmYzdkOTllMDZkODhjNjVhOTRiYWEzN2IzYw==
A noter que sur l'AIX 7.1 il n'y a pas la commande base64.> shasum --algorithm 256 < monFichier.pdf
09a5cfc0e5b8372fcb072598339704bd07b193fc7d99e06d88c65a94baa37b3c -
> shasum --algorithm 256 < monFichier.pdf | openssl enc -base64 -A
WARNING: can't open config file: /var/ssl/openssl.cnf
MDlhNWNmYzBlNWI4MzcyZmNiMDcyNTk4MzM5NzA0YmQwN2IxOTNmYzdkOTllMDZkODhjNjVhOTRiYWEzN2IzYyAgLQo=
Savez-vous ce que je peux modifier pour avoir un résultat qui corresponde au premier base64 ? Ou comment transformer l'empreinte OK base64 en empreinte hex pour que je puisse la comparer avec celle générée par shasum ?
Partager