java php rsa加密解密_【转】php和java之间rsa加密互通

以下是php封装好的类,引入即可使用/*** 作者:pjp* 邮箱:vippjp@163.com*/class RSA{private $privateKey='';//私钥(用于用户加密)private $publicKey='';//公钥(用于服务端数据解密)public function __construct(){$this->privateKey = openssl_pkey_ge...
摘要由CSDN通过智能技术生成

以下是php封装好的类,引入即可使用

/**

* 作者:pjp

* 邮箱:vippjp@163.com

*/

class RSA{

private $privateKey='';//私钥(用于用户加密)

private $publicKey='';//公钥(用于服务端数据解密)

public function __construct(){

$this->privateKey = openssl_pkey_get_private(file_get_contents('php_private.pem'));//私钥,用于加密

$this->publicKey = openssl_pkey_get_public(file_get_contents('php_public.pem'));//公钥,用于解密

}

/**

* 私钥加密

* @param 原始数据 $data

* @return 密文结果 string

*/

public function encryptByPrivateKey($data) {

openssl_private_encrypt($data,$encrypted,$this->privateKey,OPENSSL_PKCS1_PADDING);//私钥加密

$encrypted = base64_encode($encrypted);//加密后的内容通常含有特殊字符,需要编码转换下,在网络间通过url传输时要注意base64编码是否是url安全的

return $encrypted;

}

/**

* 私钥解密

* @param 密文数据 $data

* @return 原文数据结果 string

*/

public function decryptByPrivateKey($data){

$data = base64_decode($data);

openssl_private_decrypt($data,$encrypted,$this->privateKey,OPENSSL_PKCS1_PADDING);//私钥解密

return $encrypted;

}

/**

* 私钥签名

* @param unknown $data

*/

public function signByPrivateKey($data){

openssl_sign($data, $signature, $this->privateKey);

$encrypted = base64_encode($signature);//加密后的内容通常含有特殊字符,需要编码转换下,在网络间通过url传输时要注意base64编码是否是url安全的

return $encrypted;

}

/**

* 公钥加密

* @param 原文数据 $data

* @return 加密结果 string

*/

public function encryptByPublicKey($data) {

openssl_public_encrypt($data,$decrypted,$this->publicKey,OPENSSL_PKCS1_PADDING);//公钥加密

return base64_encode($decrypted);

}

/**

* 公钥解密

* @param 密文数据 $data

* @return 原文结果 string

*/

public function decryptByPublicKey($data) {

$data = base64_decode($data);

openssl_public_decrypt($data,$decrypted,$this->publicKey,OPENSSL_PKCS1_PADDING);//公钥解密

return $decrypted;

}

/**

* 公钥验签

* @param unknown $data

* @param unknown $sign

*/

public function verifyByPublicKey($data,$sign){

$sign = base64_decode($sign);

return openssl_verify($data, $sign, $this->publicKey);

}

public function __destruct(){

openssl_free_key($this->privateKey);

openssl_free_key($this->publicKey);

}

}

?>

php公钥文件内容(php_public.pem)

公钥和私钥皆可自己重新生成

-----BEGIN PUBLIC KEY-----

MIGfMA0GCSqG

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值