CBC-MACについて尋ねているかもしれません。そのためには、メッセージまたはファイルを IV 0 で暗号化し、最後のブロック (AES256-cbc の場合は 16 バイト) を取るだけだと思います。 OpenSSL でこれを行う方法を説明するブログ投稿を見つけました。
openssl enc -e -aes-256-cbc -K 0123456789ABCDEF -iv 0000000000000000 < file | tail -c 16 | od -A n
-K
キーを提供する場所です。wikiページでは、ファイルを暗号化する場合、ファイルの暗号化に使用しているものとは異なるはずです。
-iv
明らかに、CBC-MAC の鍵となるすべてゼロの IV を提供します。
- これ
tail -c 16
は、16 バイト長の最後の AES256-cbc ブロックを取得することです。
od
それを16進数に変換することです。これは、そのWebサイトが一般的であると言っています。それ以外の場合は、それがより適切な場合に実行するか、完全にオフにして生のバイトだけにすることがod -A n
できます。base64
AES256-cbc はハッシュ アルゴリズムではなくブロック暗号であるため、ファイルの AES HMAC を取得することはできません。AES256-cbc は、ファイルを暗号化および復号化するためのものです。HMAC はファイルの整合性を検証するためのもので、SHA-1 や MD5 などのハッシュ アルゴリズムがコアに必要です。
ファイルの署名または検証、または暗号化を試みていますか? 署名するには、 OpenSSL dgstコマンドを確認して、MD5 や SHA-1 などの単純な HMAC を使用するか、DSS/DSA を使用してデジタル署名を実行します。
また、MAC としてブロック暗号を使用することはEMACと呼ばれると思いますが、OpenSSL は私の知る限り EMAC を行いません。EMAC は、暗号化されたファイルの最後のブロックを取得し、それを暗号化して MAC を作成します。