RSA,AES,SHA1,RSA-SHA1 Sign加密算法C++/Java封装

/Files/hijackwust/071229200308.rar

转自:http://blogold.chinaunix.net/u1/52224/showart.php?id=453114

以前做项目的时候需要C++和Java之间进行数据通信,要解决相互信任和数据安全的问题,使用了RSA-SHA1签名做证书,通信开始时传递证书然后使用RSA加密AES密钥,以后通信使用AES加密进行数据传输,所以封装了RSA/PKCS #1,  AES/CBC/PKCS#1,  SHA1,  RSA-SHA1 Signature,另外为了方便数据转换,封装了Base16和Base64算法。
 
C++部分使用了Wei Dai整理的开源C++加密工具cryptopp(www.cryptopp.com),cryptopp是一个非常优秀和完善的开源C++加密工具,将C++技术和设计模式使用到了淋漓尽致的地步,不过对于初学者来说比较难以上手,特别是需要将项目交给初学者来实现的时候,所以当时在cryptopp的基础上做了一些封装,并且将RSA,AES,SHA1,RSA-SHA1 Sign分离成独立的类,并且添加了Base16和Base64编码算法,使用这几个加密算法,几乎可以解决一般项目对通信安全的需要。
 
Java部分使用了JDK自带的SunJCE加密框架,一般网上可以找到的Java加密解密都是使用SunJCE框架,还有一个比较著名的Java开源加密工具是bouncycastle(http://www.bouncycastle.org/),因为SunJCE是JDK自带的,所以使用比较方便,相对于cryptopp,SunJCE要容易上手得多,几乎不需要再做封装,不过为了跟C++封装统一,也做了简单的封装,保持C++接口和Java接口相近。
 
C++封装在Visual Studio 2003下测试通过,Java封装在jdk1.5.0_14下测试通过。
更详细的信息,解压缩后参考/doc/crypto.doc和源代码.
 
 
文件: crypto.2007.12.29.20.01.apacheL.rar
大小:

224KB

下载: 下载

sha1: 99C1BF0396B35518DB34C1566462B3AE786744CD

sha256: F5325064D1D5E25A45F1EE19E126C847E181EC7720472785429E8331252830CF

sha512: BCF60EB80253C6C8D5F813A4E04FF1A84C0CF4FE64BD9D591EE592D39267EF5F7A1611C922856D960515E58087A67D6994643178ABA5C52470D4C624E27591D9


posted on 2011-07-20 09:22 hijackwust 阅读(3065) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 
<2011年7月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

导航

统计

常用链接

留言簿(6)

随笔档案(57)

友情链接

搜索

最新评论

阅读排行榜

评论排行榜