是否有机会让 PHP 的 openssl_sign 方法与 SHA512(或任何其他 SHA2 家族成员)一起使用?
如果我使用 RSA 作为密钥类型(OPENSSL_KEYTYPE_RSA)并通过
openssl_sign($data, $signature, $privatekey, 'sha512');
一切正常。
但是,当使用 OPENSSL_KEYTYPE_DSA 时,签名保持为空。
在OpenSSL 帮助页面上,我发现:“如果您希望使用 DSA 算法签名或验证数据,则必须使用 dss1 摘要。”</p>
所以我用 DSA 尝试了这个:
openssl_sign($data, $signature, $privatekey, 'dss1');
它工作得很好。
我更喜欢使用 DSA,因为它创建的签名更短,更适合我的用例。但是我担心的是 DSS1 基本上是 SHA1,不应该再使用了。这也适用于与 DSA 的组合吗?有没有办法解决这个问题并将 DSA 与 SHA512 结合使用?