我正在尝试使用 OPENSSL 实现 rsa 加密和解密。请查看下面给出的代码,如果有任何问题,请告诉我。
<?php
function pr($val){
echo '<pre>';
print_r($val);
echo '</pre>';
}
function strtohex($string)
{
$string = str_split($string);
foreach($string as &$char)
$char = dechex(ord($char));
return implode('',$string);
}
$res=openssl_pkey_new(array('digest_alg' => 'sha1', 'private_key_type' => OPENSSL_KEYTYPE_RSA, 'private_key_bits' => 1024));
// Get private key
openssl_pkey_export($res, $privkey);
$data='test';
echo 'prvt<br/>'.$privkey.'<br/> ends<br/><br/>';
// Get public key
$pubkey=openssl_pkey_get_details($res);
pr($pubkey["key"]);
echo 'prvt<br/><br/>';
//var_dump($pubkey["rsa"][""]);
pr($pubkey["rsa"]);
echo 'prvt<br/><br/>';
$n=strtohex($pubkey["rsa"]["n"]);
echo 'n<br/><br/>';
pr($n);
echo 'e<br/><br/>';
$e=$pubkey["rsa"]["e"];
pr($e);
//$binarydata = pack($pubkey["rsa"]["e"], 0x1234, 0x5678, 65, 66);
//pr($binarydata);
echo 'd<br/><br/>';
$d=strtohex($pubkey["rsa"]["d"]);
pr($d);
echo 'p<br/><br/>';
$p=strtohex($pubkey["rsa"]["p"]);
pr($p);
echo 'q<br/><br/>';
//var_dump($pubkey["rsa"]["q"]);
$q=strtohex($pubkey["rsa"]["q"]);
pr($q);
echo 'dmp1<br/><br/>';
//pr($pubkey["rsa"]["dmp1"]);
$dmp1=strtohex($pubkey["rsa"]["dmp1"]);
pr($dmp1);
echo 'dmq1<br/><br/>';
//pr($pubkey["rsa"]["dmq1"]);
$dmq1=strtohex($pubkey["rsa"]["dmq1"]);
pr($dmp1);
echo 'iqmp<br/><br/>';
//pr($pubkey["rsa"]["iqmp"]);
$iqmp=strtohex($pubkey["rsa"]["iqmp"]);
pr($iqmp);
?>
这里我没有得到索引 $pubkey["rsa"]["e"] 的值。任何帮助,将不胜感激...
提前谢谢...