我不知道在哪里发布这个,所以我从这里开始并希望最好。我有一个为.NET生成的公钥和私钥。键有(模数,指数等)。我将公钥发送给第三方,他们用它来加密数据库中的密码。我下载了加密密码,现在我需要在我的头上解密它们。当必须在unix服务器上解密时,会出现此问题。我不在乎我是否使用php,java或任何其他语言,只要它在unix盒子上工作。我是RSA密钥的完整新手,非常感谢任何帮助,甚至是我应该“发布”的方向。提前谢谢....
答案 0 :(得分:2)
值似乎是base64编码的。您可以使用phpseclib's pure PHP RSA implementation并执行类似的操作来加载公钥:
$rsa->loadKey(array('modulus' => $modulus, 'exponent' => $exponent), CRYPT_RSA_PUBLIC_FORMAT_RAW);
对于私钥......也许你可以做类似的事情。
$rsa = new Crypt_RSA();
$rsa->modulus = $modulus;
$rsa->publicExponent = $exponent;
$rsa->exponents = array(1=> $dp, $dq)
$rsa->coefficients = array(2 => $inverseq);
$rsa->primes = array(1 => $p, $q);
或类似的东西 - 我没有测试过代码,但粗略地浏览一下phpseclib的代码表明它会起作用。
答案 1 :(得分:-1)
有一篇关于在PHP中使用.NET的密钥格式的好文章: Using PHP to encrypt/decryp/sign/verify data with .NET XML RSA key