android RSA加密的使用
来源:互联网 发布:linux vnc服务器 编辑:程序博客网 时间:2024/06/09 19:25
简单的先介绍RSA这个加密方式,这个加密方式到目前为止还没有一个组织和个人在公开的场面宣布破解了,各大银行的系统都在用这种加密的方式,当然银行的系统比较麻烦具体是什么框架怎么搞的也不太清楚。RSA属于非对称的算法,具体的对称和非对称的区别自行百度,在这里不在多余赘述。公钥加密私钥解密或者私钥加密公钥解密,下面说说我们项目里面加密和解密是怎么用的:我们的用法相对来说比较简单,服务器生成公钥和私钥,并且把公钥给我们,然后传输数据的时候我们用公钥加密服务器那边用私钥解密,当服务器给我们数据的时候他们用私钥加密我们用公钥解密,这个密钥对是固定的而且私钥只能在生成的那台机子上用换一台机子就会出问题,公钥无所谓,因为公钥本来就是给别人看的,下面上代码:
/** * 用公钥加密 <br> * 每次加密的字节数,不能超过密钥的长度值减去11 * * @param data 需加密数据的byte数据 * @param pubKey 公钥 * @return 加密后的byte型数据 */ public static byte[] encryptData(byte[] data, PublicKey publicKey) { try { Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); // 编码前设定编码方式及密钥 cipher.init(Cipher.ENCRYPT_MODE, publicKey); // 传入编码数据并返回编码结果 return cipher.doFinal(data); } catch (Exception e) { e.printStackTrace(); return null; } } /** * 用公钥解密 * * @param encryptedData 经过encryptedData()加密返回的byte数据 * @param publicKey 公钥 * @return */ public static byte[] decryptData(byte[] encryptedData, PublicKey publicKey) { try { Cipher cipher = Cipher.getInstance(RSA); cipher.init(Cipher.DECRYPT_MODE, publicKey); return cipher.doFinal(encryptedData); } catch (Exception e) { return null; } }
以上两个方法就是用公钥加密解密的方法,RSA在java里面已经集成好了所以直接就可以调用现成的方法,现在着重说一下这段代码:
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
这个里面的参数android的话默认是RSA但是我们的PHP默认的是PKCS1Padding所以光这个问题搞了半天,需要把PKCS1Padding也加进去。到现在为止最基本的加密解密就可以完成了,有什么问题可以在下面留言
0 0
- android RSA加密的使用
- android开发中Rsa加密的使用
- android的RSA加密
- Android RSA加密解密的 工具类的使用
- RSA加密解密的使用!
- Android加密DES AES RSA的简单使用
- android RSA 使用公钥加密里的坑
- android RSA和Java RSA加密不一致的坑
- Android 与 .net 互通的RSA加密
- Android 与 .net 互通的RSA加密
- Android RSA加密解密功能的实现
- RSA加密在VS.NET的使用
- java中非对称加密(RSA)的使用
- Android RSA加密解密
- Android RSA加密解密
- android RSA 加密
- Android RSA加密解密
- Android RSA加密解密
- 对话框版本低导致异常退出
- GCD高级功能(一次性执行,调度组,延迟操作)
- windows下vs2010 编译live555源码库的环境搭建
- CSS文档规范
- 苹果原生框架分享 ----- Social
- android RSA加密的使用
- NSAssert()
- 实现单张图片的倒影效果
- 343. Integer Break
- FileReader搭配FileWriter,更新对抛出的机制做回应
- poj2594
- 基于JavaScript代码去掉H5页面中的头尾及广告部分(支持 Android 和 iOS)
- Unity3D的几种坐标系,以及屏幕解锁类似功能
- hdu1978——How many ways(记忆化dp)