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和源代码.
1