将SSL命令转换为PHP

时间:2017-12-26 13:31:24

标签: php ssl

我有一个SSL命令,它使用给定的密钥对字符串进行签名: openssl dgst -sha256 -hex -sign key.pem data.txt。我想知道如何将它转换为PHP函数。 PHP中的等价物应该是这样的: openssl_sign($data, $signature, $key, OPENSSL_ALGO_SHA256)。但是,unix命令以十六进制输出签名,而我实际上并没有得到PHP命令输出的内容。

1 个答案:

答案 0 :(得分:1)

这将产生与openssl命令相同的十六进制表示:

$signature = "";
$data = file_get_contents("data.txt");
$key = file_get_contents("key.pem");
openssl_sign($data, $signature, $key, OPENSSL_ALGO_SHA256);
echo bin2hex($signature);

基本上,php版本生成二进制字节,因此在上面的代码中,我只使用bin2hex函数以与openssl命令中相同的格式输出它。