php中RSA加密,明文超长,需要分段加密该怎么做?
女神的闺蜜爱上我
女神的闺蜜爱上我 2016-12-22 09:46:57
0
1
1283

在php接口中,需要用到RSA加密,加密的明文是一段标准的xml 
xml示例:  

<?xml version="1.0" encoding="UTF-8" ?>  
<epay>  
<version>1.0.0</version>   
<action>pay_trade_service</action>  
<operation> payTrade</operation>  
<orderId>2012112916JY15592132</orderId>  
<platformId>2009061117PT25762148</platformId>  
<platformPayTime>20090611000000</platformPayTime>  
</epay>



msg=UrlEncode(base64(xml); 
使用算法对msg的签名,例如:sign=rsa_sign(private_key,msg); 
但是msg的长度超过了RSA加密的明文长度,现在需要对其进行分段加密,应该怎么做?请各位指教。


女神的闺蜜爱上我
女神的闺蜜爱上我

全部回复(1)
巴扎黑

一般来说,加密分为两个部分,一个是非对称加密,一个是对称加密,使用对称加密加密正文信息,使用非对称加密加密对称加密的密钥,然后发送加密数据(消息摘要和数字签名就不讨论了),这是正规的数据加密策略,对称加密默认支持大数据分段加密策略,你只需要从接口中完成加密即可,而且对称加密速度比非对称加密快很多,如果你需要使用这个策略建议使用AES。 
如果你不愿意使用对称加密,只愿意使用AES加密,那你就必须丧失速度了,而且自己处理分段加密,因为RSA加密通常是117个字节就要分段(这个长度可能和密钥长度有关,我是用的接口是117),你需要自己把数据变成N个117字节的数据段来完成加密,解密也需要自己完成字节拼装。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板