我计划使用php为我的软件生成使用MSVC ++编写的序列号。我选择的方法是散列信息并使用私钥对其进行签名。在MSVC ++中,我能够使用本机API验证由RSA公钥算法签名的哈希。是否可以使用PHP中的RSA公钥算法签署哈希。
请建议。
此致 约翰。
答案 0 :(得分:2)
尝试phpseclib, a pure PHP RSA implementation:
<?php
include('Crypt/RSA.php');
$rsa = new Crypt_RSA();
extract($rsa->createKey());
$plaintext = 'terrafrost';
$rsa->loadKey($privatekey);
$signature = $rsa->sign($plaintext);
$rsa->loadKey($publickey);
echo $rsa->verify($plaintext, $signature) ? 'verified' : 'unverified';
?>
poelinca提出的解决方案的问题是它不符合PKCS#1(这意味着,它很可能不会与MSVC ++互操作),它不适用于标准化的密钥格式,它没有使用RSA盲(意味着可以使用定时攻击来计算私钥)。
答案 1 :(得分:1)
我不明白你用“签署哈希”的意思,但Encrypt and decrypt data with RSA public keys会有什么帮助吗?