函式名:sodium_crypto_sign()
適用版本:PHP 7.2.0以上
函式描述:sodium_crypto_sign()用於生成簽名和驗證簽名。該函式使用Ed25519數字簽名演算法,可確保訊息的完整性和身份驗證。
用法:
生成簽名: sodium_crypto_sign(string $message, string $secretKey): string 引數$message是要簽名的訊息,$secretKey是用於生成簽名的私鑰。函式返回生成的簽名,以字串形式表示。 示例:
$message = "Hello, world!"; $secretKey = sodium_crypto_sign_keypair_from_secretkey(base64_decode('your_secret_key')); $signature = sodium_crypto_sign($message, $secretKey); echo base64_encode($signature);驗證簽名: sodium_crypto_sign_open(string $signature, string $publicKey): ?string 引數$signature是待驗證的簽名,$publicKey是用於驗證簽名的公鑰。函式返回驗證成功時返回原始訊息,驗證失敗時返回null。 示例:
$message = "Hello, world!"; $signature = base64_decode('your_signature'); $publicKey = base64_decode('your_public_key'); $valid = sodium_crypto_sign_open($signature, $publicKey); if ($valid !== null) { echo "Signature is valid. Message: " . $valid; } else { echo "Invalid signature."; }
注意事項:
- 在生成簽名之前,需要先生成金鑰對(公鑰和私鑰)。可以使用sodium_crypto_sign_keypair_from_secretkey()函式從私鑰派生金鑰對。
- 公鑰和私鑰通常以Base64編碼的字串形式儲存和傳輸。
- 簽名生成和驗證過程中,需要確保私鑰的保密性,公鑰可以公開使用。
更多關於sodium_crypto_sign()函式的資訊,請參考PHP官方文件:https://www.php.net/manual/en/function.sodium-crypto-sign.php
熱門工具排行榜