在Linux系統中,OpenSSL提供強大的數據簽名和驗證功能。以下步驟演示如何使用OpenSSL進行數據簽名:
第一步:密鑰對生成
首先,需要生成一對密鑰:私鑰用于簽名,公鑰用于驗證簽名。 使用RSA算法生成密鑰對,命令如下:
openssl genrsa -out private_key.pem 2048
這將創建一個名為private_key.pem的私鑰文件。
第二步:證書簽名請求(CSR)生成(可選)
雖然非必須步驟,但通常會從私鑰生成CSR,提交給證書頒發機構(CA)獲取數字證書。 命令如下:
openssl req -new -key private_key.pem -out certificate_signing_request.pem
系統會提示您填寫相關信息。
第三步:數據簽名
假設需要簽名的文件名為data.txt,使用以下命令進行簽名:
openssl dgst -sha256 -sign private_key.pem -out signature.bin data.txt
-sha256指定SHA-256哈希算法,-sign指定私鑰文件,-out指定簽名文件輸出名(signature.bin),data.txt為待簽名數據文件。 簽名結果存儲在signature.bin中。
第四步:簽名驗證
驗證簽名需要公鑰和原始數據。 使用以下命令驗證:
openssl dgst -sha256 -verify public_key.pem -signature signature.bin data.txt
-verify指定公鑰文件(public_key.pem),-signature指定簽名文件,data.txt為原始數據文件。 驗證成功將輸出”Verified OK”,否則會顯示錯誤信息。
請注意,文件名和路徑可根據實際情況修改。 OpenSSL支持多種哈希和簽名算法,可根據需求選擇。 記住妥善保管私鑰,防止泄露。