服务器与客户端RSA加密解密通讯

   class Events
{
     /**
    * 解密操作
    * @param 密匙
    */
    static function rsakey(){
      return '-----BEGIN PRIVATE KEY-----
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
M8pOp2OJORHvXb3v6dTNM6MQiR5Z
-----END PRIVATE KEY-----';
    }
    static function publickey(){
      return '-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAqxZfOgT3qh6pi5yx36Zf
9+GbA+WrTjayUa3AMgFcnTvUQ4ClYxmBNAy6+V9Cgdi3r8+tSa0DOF8yuue8CV0h
+3tPeRZNInty41mEZofAhAZJr7PreMb5QfEIkGkuKeGJF8vhi3VC0dr8/NcXI93b
ISOeIKv2vMZVmsYcIouIzupevkL0AUvKqitAYBV2KwUoXmm5GHAxHRgIi7yXGkvZ
NPmK9Z5nxA/o7AK01X8ShHL902ID9I/ags1L3O2NsQ4921KNVAjTCuKL2hVKkjzw
9unjp+WBCaeKM3jJK4JWckf4QEsRWANgAQbs30X98V1UXyRT/9D8ZgwoduLfyU6+
fopBr1Vy7b+9O82aV0bNe5K34AZ1rfFdoyuOrvWejQtOJ2DkZdioyW+6GOh89s62
9Wd2B6kBQyUi3BhW5Z6t0Lr5Y5u0e4L/hvZEYyvxi2buYD4RNYfPHb/j0QhccsFA
A07XU1U0tYxIg+6MAONStFQfInfTom1bhRhsBz60dkpVNer1tdSENshrhzbsVNLw
HhlMXhlMJ3LqPj7llsr4lwIQ5Dbw9WEDXZOaw2uEeKrCmPIUb/ZwEMg0nEilcI8a
4bPjV9HgKZZH4nUZgKt5L1cNOvTHRTlQbmILHDmBAdlP0hhsBE62vd0BYn5cKtZB
CgEGMREuqZG+C0ZXYrQOkiECAwEAAQ==
-----END PUBLIC KEY-----';
    }
     /**
    }
    * 解密操作
    * @param $data 密文
    */
    static function rsaDecrypt($data){
      $private_key=Events::rsakey();
        //私钥解密 
      $hex_encrypt_data = trim($data);  //十六进制数据
      openssl_private_decrypt(base64_decode($hex_encrypt_data), $decrypt_data, $private_key); //解密数据
      return $decrypt_data;
    }
    /**
    * 公匙加密
    * @param $data 需要加密的文本
    */
    static function rsaEncryption($data){
      $public_key=Events::publickey();
      openssl_public_encrypt($data,$encrypted,$public_key);
      // //加密后的内容通常含有特殊字符,需要base64编码转换下
      $encrypted = base64_encode($encrypted);
      return $encrypted;
      
    }
    
}

服务器使用类里面的公匙进行加密JSON

Events::rsaEncryption(json_encode(['states'=>'该用户已下线',"code" => 10004],JSON_UNESCAPED_UNICODE))

客户端使用
vue JSEncrypt.js 进行解密

Vue.prototype.jsonDecrypt= function(data){
	var socketSkey =`-----BEGIN PRIVATE KEY-----
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
Bpun+UwI53McxpB0YTzyj0y7Zfg2P0w=
-----END PRIVATE KEY-----
`
	let encryptor = new JSEncrypt() // 新建JSEncrypt对象
	let privateKey = socketSkey;
	encryptor.setPrivateKey(privateKey)
	return encryptor.decrypt(data);
}

解密JSON密文

this.jsonDecrypt(data)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值