开发者社区> 问答> 正文

php中RSA加密,明文超长,需要分段加密该怎么做?

已解决

在php接口中,需要用到RSA加密,加密的明文是一段标准的xml
xml示例:
`
<?xml version="1.0" encoding="UTF-8" ?>

1.0.0
pay_trade_service
payTrade
2012112916JY15592132
2009061117PT25762148
20090611000000

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

展开
收起
51干警网 2016-02-15 09:45:39 6325 0
1 条回答
写回答
取消 提交回答
  • 阿里云论坛版主,QQ 1978638808
    采纳回答

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

    2019-07-17 18:28:39
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PHP安全开发_从白帽角度做安全 立即下载
PHP在机器学习上的应用及云深度学习平台的架构设计与实现 立即下载
量子加密通信技术 立即下载