0 0

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

在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加密的明文长度,现在需要对其进行分段加密,应该怎么做?请各位指教。
2015年1月04日 14:38

1个答案 按时间排序 按投票排序

0 0

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

2015年1月05日 14:01

相关推荐

    前端 RSA分段加密算法

    然而,RSA加密的局限性在于它能处理的明文数据长度有限,通常不超过128字节。对于像图片Base64编码这样的大长度内容,直接使用RSA加密会超出其能力范围。为了解决这个问题,我们引入了"分段加密"的概念。分段加密是...

    IOS RSA加密 分段解密

    总之,iOS中的RSA加密和分段解密是一项重要的安全技术,它涉及到数学理论、操作系统安全框架以及编程实现等多个方面。开发者在实际操作时,不仅要理解其工作原理,还需要关注安全性和性能优化,确保数据的安全传输和...

    C# RSA分段加解密实现方法详解

    总结一下,C#中实现RSA分段加解密的关键在于理解RSA加密的限制,以及如何有效地处理超过单次加密限制的数据。通过循环分块处理,可以确保任何大小的数据都能被安全地加密和解密。在编写相关代码时,需要注意正确处理...

    RSA.rar_RSA加密文件_RSA加密明文_RSA加密解密和_rsa c_rsa文件加密

    “RSA加密明文”则涉及对纯文本的加密,这可能包括将明文字符转化为ASCII码或其他编码形式,再进行RSA加密。解密过程则是相反的,使用私钥对密文进行解密,恢复原来的明文。 “rsa_c”表明文件中可能包含一个C语言...

    C# RSA加密解密

    **C# RSA加密解密详解** 在信息安全领域,加密技术是一种至关重要的手段,用于保护数据的隐私和安全性。RSA(Rivest-Shamir-Adleman)算法是一种非对称加密算法,广泛应用于网络通信、数据存储等领域。C#作为.NET...

    RSA.rar_RSA加密明文_RSA加密明文1_crptograph_字串加密_密文比对

    总结起来,"RSA.rar"中的程序是一个实现RSA加密算法的工具,它能够对字符串进行加密和解密,并提供密钥生成、密文显示以及解密后与原文的比对功能。了解并掌握RSA算法不仅对于理解密码学基础至关重要,也是进行网络...

    RSA分段加密资源压缩包

    在RSA分段加密中,由于RSA算法的加密长度有限制,通常为128或256位,因此,当需要加密的明文数据超过这个限制时,就需要将数据分成多个段分别进行加密。每个段使用同样的公钥进行加密,然后将所有加密后的段组合成一...

    rsa.zip_QT RSA加密算法_Qt rsa加密_qt rsa加密步骤_rsa_rsa算法 qt

    RSA加密算法是公钥密码学中的一个重要组成部分,它在信息安全领域有着广泛的应用,例如数字签名、数据加密等。Qt是一个跨平台的C++图形用户界面应用程序开发框架,它提供了丰富的库支持来创建桌面和移动应用。在本...

    Java实现Rsa非对称分段加解密方法源码分享

    在Java中,我们通常使用`java.security`和`javax.crypto`这两个包来实现RSA加密。以下是一些关键步骤: 1. **密钥对的生成**: - 使用`KeyPairGenerator`类,通过`getInstance("RSA")`获取RSA算法的密钥对生成器。...

    RSA加密算法源码 delphi7测试正常

    总结起来,RSA加密算法在Delphi7中的实现涉及了数论、大数运算和编程技巧,而"RSA加密算法源码 delphi7测试正常"表明这是一种可靠的实现,可以用于实际的加密需求。通过学习和使用这些源码,开发者可以提升自己的...

    Java实现基于RSA算法的非对称分段式双向加解密的数据接口安全认证源码分享.rar

    Java实现基于RSA算法的非...总结来说,这个Java项目是关于使用RSA非对称加密技术进行数据接口安全认证的实践,涵盖了非对称加密、分段加密以及Java的实现细节,对于理解和应用RSA加密在实际系统中具有很高的参考价值。

    RSA加密算法在VB中的实现.rar_RSA VB_VB RSA_rsa加密算法_vb rsa_vb 加密

    在VB(Visual Basic)环境中实现RSA加密算法,可以帮助开发者更好地理解加密过程,并在实际项目中应用。 首先,我们需要了解RSA算法的基本原理。RSA的核心是两个大素数p和q的乘积N=p*q,以及欧拉函数φ(N)=(p-1)*(q...

    rsa分段加密加密解决方案

    4. **混合加密**:通常结合对称加密(如AES)和非对称加密(如RSA)以提高效率和安全性,即使用RSA加密对称密钥,然后用该密钥加密大量数据。 在实际项目中,开发人员需要根据具体需求和安全标准来选择合适的安全...

    RSA加密示例

    在实际应用中,通常先使用RSA加密对称加密的密钥,然后使用该对称密钥来加密实际需要传输的数据,这种方式兼顾了安全性与效率。 通过上述的示例,我们看到了RSA加密的全过程。虽然示例中使用的数字较小,便于理解,...

    unity工具类RSA加密和解密

    本文将深入探讨RSA加密和解密的基础知识以及如何在Unity中实现这一功能。 首先,RSA加密的核心原理是基于大整数因子分解的困难性。它生成一对密钥:公钥和私钥。公钥可以公开,用于加密;而私钥必须保密,用于解密...

    RSA加密所需要的js

    RSA加密是一种非对称加密算法,它在网络安全和数据保护领域广泛应用。该算法基于大整数因子分解的困难性,即找到两个大素数的乘积的因数是非常困难的。这种特性使得RSA成为一种安全的数据加密手段,常用于网络传输中...

    RSA.zip_RSA 加密解密_rsa_rsa加密算法_rsa加密解密_rsa加密解密算法

    本资源提供了RSA加密解密的源码,适用于学习和理解RSA算法的工作原理及其实现。 首先,RSA算法的核心原理基于大数的因式分解困难性。它由三位科学家Rivest、Shamir和Adleman于1977年提出,因此得名RSA。该算法包括...

    PB12.5可实用的RSA加密算法(源码含Demo).zip

    RSA加密算法是一种非对称加密技术,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,是现代密码学的基石之一。在PowerBuilder(PB)开发环境中,使用RSA算法可以实现数据的安全传输和存储。PB12.5是Power...

    RSA加密算法实现以及C#与java互通加解密

    在实际应用中,由于RSA加密过程中输入数据的大小受限于密钥的长度,因此需要将较长的明文分成多个块,分别进行加密后再合并,这一过程称为填充算法。常见的填充方式有NoPadding、OAEPPadding和PKCS1Padding等。 - *...

Global site tag (gtag.js) - Google Analytics