使用RSA公钥算法进行签名

时间:2011-01-04 08:44:18

标签: php

我计划使用php为我的软件生成使用MSVC ++编写的序列号。我选择的方法是散列信息并使用私钥对其进行签名。在MSVC ++中,我能够使用本机API验证由RSA公钥算法签名的哈希。是否可以使用PHP中的RSA公钥算法签署哈希。

请建议。

此致 约翰。

2 个答案:

答案 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会有什么帮助吗?