使用私钥RSA解密 [英] RSA decryption using private key

查看:168
本文介绍了使用私钥RSA解密的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个私钥和加密的字符串。实际上字符串已经使用.NET模块进行了加密。现在我需要解密字符串。我尝试在php,但它抛出我以下错误

  openssl_private_decrypt():密钥参数不是有效的私钥

我尝试过perl,但它需要自己的私钥,但它需要使用我自己的私钥,已在我们的服务器中生成。



请在此问题上建议我克服。 PHP,红宝石,Perl的解决方案将是更有益的。



  $ crypttext =GKL / n5hkBg4jyjrLRqjQbf9gAS3xnbp1xmCmamPO33fW21JAJtlVQHYR6O1dOw3tfobMe / 0uXm / kgivae9zHNey4Wt3UGzPwosUrx7V8zhC97AXya2tuENO1Fmc4Z8l9 + UalwtUZxMGtl3Ua9DYuvxLP / TuavgRNpmG6eemGPag =; 
$ fp = fopen(private.pem,r);
$ priv_key = fread($ fp,8192);
fclose($ fp);
openssl_private_decrypt(base64_decode($ crypttext),$ newsource,false);
echoString decrypt:$ newsource**;

私钥

 < BitStrength> 1024< / BitStrength>< RSAKeyValue><模量> t2G2WWIal1EinPn54ZPc3S1UgGTDxr6RFc + XEMR723VSg9toU8lSfTD7C26bUcbDxBwP1 / 1MbdQcx / DKX + 7UlB5z79vrwfT89rUZGWeH7VZvuAawtHURgucyGMhqAZ9NxDEAl5Uo3nsNL9j1JlSBfeZf8pU5sf70KezqJTRsfrE = LT; /模量><指数> AQAB< /指数>< P> 82dZbOjQCJ7NV6EuVJXqPlh4FB65LBL1w9696sKFZuIr8refGwTZOY05se6oHbT9mn8OFXVA6A / wmz7oWNPk9w ==< / P>< Q> wN8uixNk73DIF2SHb0aunnW5XxAIq3KxeQKoUTBAzL7BqXmKjk6XDnfxDbybmcT51wGhiO20lGg51zuxnsPXlw ==< / Q>< DP> KV-4坦克+ VXZqCJvEOY5G2LoCPjDyRNuIabiPoKFfenARkDKzAJReji81D21am4tENrsZcIiwvCmR5WurXECoWchT0Q ==< / DP>< DQ> qGRzW4O0VYVvfVUNFi9tF / aKwR / boe0CXDfgwvnRKbHGnfP67 + JX6o73zFmGtQuQYpMO + OEpD4WsMmnw2z / 7ww ==< / DQ>< InverseQ> czq4 + xiiVxb63ZtKwkxyJoDLFH0f18YlfFQTrEoAx7UE9HdjOjsJFpZ54g0yK3 / S / yVgIXPwMcw6LU1QvqazPg ==< / InverseQ>< d取代; KTP / tWWSlzfToeFcvpVCMMGOFK73fTM9Tl6Di9yOoRtKnB uixqmuSCkxEVvYmgSb7PEt1qiPur6ttyEX1VFHhaugTr3aVhUpF + k7ULaHrCb8UymXXW3pp /基/ QOMPWuNKVv / GU3aQ3VTc3WUaYuOnaIkJk7uoYDQn0QqWtxtT60 = LT; / d取代;< / RSAKeyValue> 


解决方案

phpseclib,一个纯粹的PHP RSA实现,支持这种格式的XML私钥。使用示例:

 <?php 
include('Crypt / RSA.php');

$ rsa = new Crypt_RSA();
$ rsa-> loadKey('...'); //私钥

echo $ rsa-> decrypt($ ciphertext);
?>


I have a private key and encrypted string. Actually string has been encrypted using .NET modules. Now I need to decrypted the string . I tried in php but it throws me following error

 openssl_private_decrypt(): key parameter is not a valid private key  

I tried in perl but there it takes its own private key, But it need to use my own private key, which has been generated in our server.

Please suggest me on this issue to overcome. PHP ,Ruby , Perl Solution would be more helpful.

$crypttext="gKL/n5hkBg4jyjrLRqjQbf9gAS3xnbp1xmCmamPO33fW21JAJtlVQHYR6O1dOw3tfobMe/0uXm/kgivae9zHNey4Wt3UGzPwosUrx7V8zhC97AXya2tuENO1Fmc4Z8l9+UalwtUZxMGtl3Ua9DYuvxLP/TuavgRNpmG6eemGPag=";
$fp=fopen("private.pem","r");
$priv_key=fread($fp,8192);
fclose($fp);
openssl_private_decrypt(base64_decode($crypttext ),$newsource,false ) ;
echo "String decrypt : $newsource"**;

Private Key

<BitStrength>1024</BitStrength><RSAKeyValue><Modulus>t2G2WWIal1EinPn54ZPc3S1UgGTDxr6RFc+XEMR723VSg9toU8lSfTD7C26bUcbDxBwP1/1MbdQcx/dKX+7UlB5z79vrwfT89rUZGWeH7VZvuAawtHURgucyGMhqAZ9NxDEAl5Uo3nsNL9j1JlSBfeZf8pU5sf70KezqJTRsfrE=</Modulus><Exponent>AQAB</Exponent><P>82dZbOjQCJ7NV6EuVJXqPlh4FB65LBL1w9696sKFZuIr8refGwTZOY05se6oHbT9mn8OFXVA6A/wmz7oWNPk9w==</P><Q>wN8uixNk73DIF2SHb0aunnW5XxAIq3KxeQKoUTBAzL7BqXmKjk6XDnfxDbybmcT51wGhiO20lGg51zuxnsPXlw==</Q><DP>Kv4+VXZqCJvEOY5G2LoCPjDyRNuIabiPoKFfenARkDKzAJReji81D21am4tENrsZcIiwvCmR5WurXECoWchT0Q==</DP><DQ>qGRzW4O0VYVvfVUNFi9tF/aKwR/boe0CXDfgwvnRKbHGnfP67+JX6o73zFmGtQuQYpMO+OEpD4WsMmnw2z/7ww==</DQ><InverseQ>czq4+xiiVxb63ZtKwkxyJoDLFH0f18YlfFQTrEoAx7UE9HdjOjsJFpZ54g0yK3/S/yVgIXPwMcw6LU1QvqazPg==</InverseQ><D>Ktp/tWWSlzfToeFcvpVCMMGOFK73fTM9Tl6Di9yOoRtKnBuixqmuSCkxEVvYmgSb7PEt1qiPur6ttyEX1VFHhaugTr3aVhUpF+k7ULaHrCb8UymXXW3pp/yl/QOMPWuNKVv/GU3aQ3VTc3WUaYuOnaIkJk7uoYDQn0QqWtxtT60=</D></RSAKeyValue>

解决方案

phpseclib, a pure PHP RSA implementation, supports XML private keys in this format. Usage example:

<?php
include('Crypt/RSA.php');

$rsa = new Crypt_RSA();
$rsa->loadKey('...'); // private key

echo $rsa->decrypt($ciphertext);
?>

这篇关于使用私钥RSA解密的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆