实际上就是非对称密钥加密RSA。
但为什么不使用jca这些java自带的呢?因为android是非sun的虚拟机,其实现方法有不同,在现实使用中老是报错,而且网上几乎没有资料谈到这些,所以干脆自己写纯java代码。
几乎尝试了所有的jca加密,但总是不成功,android加的密文java就解不了。
先从网上找来一个RSA算法,是从一个法国网站找来的。
http://www.javafr.com/dlzip.zipnix?ID=27020&accept=1
是用BigInteger来实现的,代码不复杂。
然后再加一点包装,用Base64包成byte[]。
保留了原来法国人写的大部分算法,加了外面的处理,毕竟BigInt不好处理。
缺省长度是512,一般是够了。
这样用在android1.1以上和jdk 1.5以上都没问题。
但为什么不使用jca这些java自带的呢?因为android是非sun的虚拟机,其实现方法有不同,在现实使用中老是报错,而且网上几乎没有资料谈到这些,所以干脆自己写纯java代码。
几乎尝试了所有的jca加密,但总是不成功,android加的密文java就解不了。
先从网上找来一个RSA算法,是从一个法国网站找来的。
http://www.javafr.com/dlzip.zipnix?ID=27020&accept=1
是用BigInteger来实现的,代码不复杂。
然后再加一点包装,用Base64包成byte[]。
保留了原来法国人写的大部分算法,加了外面的处理,毕竟BigInt不好处理。
缺省长度是512,一般是够了。
这样用在android1.1以上和jdk 1.5以上都没问题。
纯Java实现RSA加密
本文介绍了一种在Android平台上使用纯Java代码实现RSA加密的方法,由于Android使用非Sun虚拟机,作者选择绕过Java自带的加密组件(JCA),自行实现了加密逻辑。文中提到的实现基于一个法国网站提供的代码,并对其进行了必要的修改。
112

被折叠的 条评论
为什么被折叠?



