在网上可以找到各种各样的RSA实现代码,原理都是RSA算法的基本原理,但是在处理数据块划分、填充等问题上都是形形色色的,本文旨在探讨、实现遵循RFC 2313 PKCS#1 v1.5标准的一种跨语言平台的RSA加密、解密、签名、验证算法的实现,使用任何一种语言加密的数据可以通过其他语言解密、或者互相签名、验证,可以方便的集成到实际应用中解决安全问题。
经过一段时间的准备,目前已经实现以下语言的统一交互:.net、java、delphi、php、javascript,使用delphi编译的DLL更加可以方便地扩展到vb、powerbuilder、c++ builder、C++、ruby等其他语言。
以下通过相应专题介绍其中的实现思路、相关技术要点及全部实现源代码,统一测试密钥长度为1024bits,其中hash签名算法大致实现下面算法MD5withRSA,SHA1withRSA,SHA256withRSA,SHA384withRSA,SHA512withRSA。
1、
RFC-2313 - PKCS #1: RSA Encryption Version 1.5介绍 2、
.net平台的RSA实现以及与Delphi之间的互操作性 3、java平台的RSA PKCS#1算法分析、实现
4、DELPHI下面RSA PKCS#1算法分析、实现
5、PHP语言实现的RSA PKCS#1算法、交互性测试
6、javascript实现的RSA PKCS#1算法、交互性测试
考虑时间整理,当前先推出.net平台的RSA实现以及与Delphi之间的互操作性,其他专题陆续发布。