OpenSSL

加密和 SSL/TLS 工具包

openssl-mac

名稱

openssl-mac - 執行訊息驗證碼運算

語法

openssl mac [-help] [-cipher] [-digest] [-macopt] [-in filename] [-out filename] [-binary] [-provider name] [-provider-path path] [-propquery propq] mac_name

說明

訊息驗證碼函式會輸出所提供輸入檔案的 MAC。

選項

-help

列印使用說明訊息。

-in filename

要計算 MAC 的輸入檔名,或預設為標準輸入。如果檔名為「-」,則使用標準輸入。檔案和標準輸入預期為二進位格式。

-out filename

要輸出的檔名,或預設為標準輸出。

-binary

以二進位格式輸出 MAC。如果未指定,則使用十六進位文字格式。

-cipher name

CMAC 和 GMAC 使用此選項來指定加密演算法。對於 CMAC,它應該是 CBC 模式加密,例如 AES-128-CBC。對於 GMAC,它應該是 GCM 模式加密,例如 AES-128-GCM。

-digest name

HMAC 使用此選項作為字母數字字串(僅在金鑰包含可列印字元時使用)。字串長度必須符合 MAC 演算法的任何限制。若要查看支援的摘要清單,請使用 openssl list -digest-commands

-macopt nm:v

傳遞選項給 MAC 演算法。可以在 EVP_MAC 實作文件檔中找到控制項的完整清單。EVP_MAC_CTX_get_params() 使用的常見參數名稱為

key:string

將 MAC 金鑰指定為字母數字字串(僅在金鑰包含可列印字元時使用)。字串長度必須符合 MAC 演算法的任何限制。必須為每個 MAC 演算法指定金鑰。

hexkey:string

以十六進位格式指定 MAC 金鑰(每個位元組兩個十六進位數字)。金鑰長度必須符合 MAC 演算法的任何限制。必須為每個 MAC 演算法指定金鑰。

iv:string

GMAC 使用此選項將 IV 指定為字母數字字串(僅在 IV 包含可列印字元時使用)。

hexiv:string

GMAC 使用此選項將 IV 指定為十六進位格式(每個位元組兩個十六進位數字)。

大小:int

由 KMAC128 或 KMAC256 使用,用於指定輸出長度。預設大小分別為 32 或 64 位元組。

自訂:字串

由 KMAC128 或 KMAC256 使用,用於指定自訂字串。預設為空字串「」。

摘要:字串

此選項與 -摘要 選項相同。

密碼:字串

此選項與 -密碼 選項相同。

-提供者 名稱
-提供者路徑 路徑
-propquery propq

請參閱 openssl(1) 中的「提供者選項」provider(7)property(7)

mac_name

指定將使用的受支援 MAC 演算法名稱。若要查看受支援 MAC 的清單,請使用指令 openssl list -mac-algorithms

範例

建立檔案的 HMAC-SHA1 MAC 的十六進位編碼,並寫入 stdout

openssl mac -digest SHA1 \
        -macopt hexkey:000102030405060708090A0B0C0D0E0F10111213 \
        -in msg.bin HMAC

從檔案建立 SipHash MAC,並以二進位檔案輸出

openssl mac -macopt hexkey:000102030405060708090A0B0C0D0E0F \
        -in msg.bin -out out.bin -binary SipHash

從檔案建立 CMAC-AES-128-CBC MAC 的十六進位編碼

openssl mac -cipher AES-128-CBC \
        -macopt hexkey:77A77FAF290C1FA30C683DF16BA7A77B \
        -in msg.bin CMAC

從檔案建立 KMAC128 MAC 的十六進位編碼,自訂字串為「標籤」,輸出長度為 16

openssl mac -macopt custom:Tag -macopt hexkey:40414243444546 \
        -macopt size:16 -in msg.bin KMAC128

從檔案建立 GMAC-AES-128-GCM 的十六進位編碼,並使用 IV

openssl mac -cipher AES-128-GCM -macopt hexiv:E0E00F19FED7BA0136A797F3 \
        -macopt hexkey:77A77FAF290C1FA30C683DF16BA7A77B -in msg.bin GMAC

注意事項

可用的 MAC 機制會依據建置 OpenSSL 時使用的選項而定。使用 openssl list -mac-algorithms 來列出它們。

另請參閱

openssl(1)EVP_MAC(3)EVP_MAC-CMAC(7)EVP_MAC-GMAC(7)EVP_MAC-HMAC(7)EVP_MAC-KMAC(7)EVP_MAC-Siphash(7)EVP_MAC-Poly1305(7)

版權所有 2018-2024 OpenSSL 專案作者。保留所有權利。

根據 Apache 授權條款 2.0(「授權條款」)授權。您不得在不遵守授權條款的情況下使用此檔案。您可以在原始程式碼散佈中的 LICENSE 檔案或 https://www.openssl.org/source/license.html 中取得副本。