RSA加密类

RSA加密是一种非对称加密

类版本:1.00
RSA介绍:
RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。两者之间有数学相关,该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。通常个人保存私钥,公钥是公开的(可能同时多人持有)

功能说明:
对数据进行加密,支持:使用公钥将数据加密、使用私钥解密、使用私钥将数据加密、使用公钥解密、私钥加签名、公钥验签

部署说明:
将类文件解压至Mb/tools文件夹下即可。


使用说明:
  1. publicEncrypt($data,$publicKey)=使用公钥将数据加密,参数:1=明文数据,2=公钥
  2. privateDecrypt($data,$privateKey)=使用私钥解密,参数:1=密文数据,2=私钥
  3. privateEncrypt($data,$privateKey)=使用私钥将数据加密,参数:1=明文数据,2=私钥
  4. publicDecrypt($data,$publicKey)=使用公钥解密,参数:1=密文数据,2=公钥
  5. rsaSign($data, $privateKey)=私钥加签名,参数:1=明文数据,2=私钥
  6. verifySign($data, $sign, $publicKey)=公钥验签,参数:1=密文数据,2=公钥
  7. 密钥长度:RSA(用支付宝开放平台工具就可以生成)
  8. 密钥格式:PKCS8
使用演示:
class testController extends Mb{
	
	public function index(){
		$publicKey = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCyZZxnEFjrfJbZ/XAh8oFgwjm8/vnIHD6F9So20fGPRqtQn0GEEEdYZLK4JzRRbKpznWp+Ad3Tb52qKhlrQFTed6xzGXSzuHAxsI2h5fVtMg0vchz9LXWB/5nf4x6rvi5xUqgY6togJnvi+ft2f0yGu0rqmp2UaDwTlkx3qMOqewIDAQAB';//公钥
		$privateKey = 'MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALJlnGcQWOt8ltn9cCHygWDCObz++cgcPoX1KjbR8Y9Gq1CfQYQQR1hksrgnNFFsqnOdan4B3dNvnaoqGWtAVN53rHMZdLO4cDGwjaHl9W0yDS9yHP0tdYH/md/jHqu+LnFSqBjq2iAme+L5+3Z/TIa7SuqanZRoPBOWTHeow6p7AgMBAAECgYBoGFRv6yEHn7ZiUrj4hgmqTQrl1h4n/xsYjVrpjA2Y3dKfA552Eg2fbXq/a9jiXjcDqWn3Rt2KP4nPPiuA4pPiE52sy8gmid1Dz6Tvim/S7R81d5dV7Ms0nrZviCNOvAYyTP/XvRvx4G4UEBc9SabEYmf8ZB7l1vaBk7WIRfjIyQJBAPnZUXdLnuTdRHU4+iP6tws4uV8UpDKtCOC6FY0ctu/SuHLyoLyirfA94soX4eTtml51pKVPw8zynEAxPTYamacCQQC2yfbJS9Rrb/iE4+n2dEW/IguTH9JCzOii36sRwLT6xqf2aJfHQlFjBW/C4d07K2jlqfLVVGOW5lveK0SnSNsNAkEAxTwha6Nu1A04tbE9BpotVdZ5v+1zke23THCaAsPgRoJ6yYNwEHn8BeNU3WTtFuPbMSZ9y2Kkl24Omz5DrCpjkQJABV8uF4BY/8dMoGsqRwnnutQ/TtWSkk//TjoQhvcI2o3YBc/RFhQG3EgenrWQkNqXvJggAND4FEk0zfSrkdb8SQJBAPQp+SHwF3631/OQuTDO3jqKjVs8lifImmpWZGpWYRRb/apMzOEliGfwygas5A5vBSz+EKo4oBx1Ba7ianI8guk=';//私钥
		$Rsa = t('Rsa');//实例化对象
		$data = 'hi PHP是世界上最好的语言';
		$publicEncrypt = $Rsa->publicEncrypt($data,$publicKey);//公钥加密
		echo '公钥加密:'.$publicEncrypt;
		
		$privateDecrypt = $Rsa->privateDecrypt($publicEncrypt,$privateKey);//私钥解密
		echo '私钥解密:'.$privateDecrypt;
		
		$privateEncrypt = $Rsa->privateEncrypt($data,$privateKey);//私钥加密
		echo '私钥加密:'.$privateEncrypt;
		
		$publicDecrypt = $Rsa->publicDecrypt($privateEncrypt,$publicKey);//公钥解密
		echo '公钥解密:'.$publicDecrypt;
		
		$rsaSign = $Rsa->rsaSign($privateEncrypt, $privateKey);//私钥加签名
		echo '私钥加签名:'.$rsaSign;
		
		$verifySign = $Rsa->verifySign($privateEncrypt, $rsaSign, $publicKey);//公钥验签
		echo '公钥验签:'.$verifySign;
	}
	
}

如果对你有帮助

可以赞助并支持下作者哦,谢谢!