* RSA算法类
* 签名及密文编码:base64字符串/十六进制字符串/二进制字符串流
* 填充方式: PKCS1Padding(加解密)/NOPadding(解密)
*
* Notice:Only accepts a single block. Block size is equal to the RSA key size!
* 如密钥长度为1024 bit,则加密时数据需小于128字节,加上PKCS1Padding本身的11字节信息,所以明文需小于117字节
**/
classRSA
{private $pubKey = null;private $priKey = null;/**
* 构造函数
*
* @param string 公钥文件(验签和加密时传入)
* @param string 私钥文件(签名和解密时传入)*/
public function __construct($public_key_file = '', $private_key_file = '')
{if ($public_key_file) {$this->_getPublicKey($public_key_file);
}if ($private_key_file) {$this->_getPrivateKey($private_key_file);
}
}//私有方法
/**
* 自定义错误处理*/
private function _error($msg)
{die('RSA Error:' . $msg); //TODO
}/**
* 检