前言
以上,我学习了对称加密算法在安卓平台上的原理和应用实践(以上链接点进入这里),本文将分享非对称加密技术在当前互联网场景中的应用。
理论上,非对称加密技术比对称加密技术复杂得多,安全得多,但其性能也低得多。无论使用对称加密还是非对称加密,都需要根据业务场景进行组合,因为两种不同的加密算法各有优缺点,没有绝对的优劣。关键是你更看重哪个指数。
本系列的前两篇文章“即时消息安全(一):正确理解和使用安卓加密算法”和“即时消息安全(三):常见加密和解密算法及通信安全说明”,也对非对称加密算法的研究和实践进行了总结,您也可以参考。
即时消息安全系列文章
本文是即时消息通信安全知识系列的第六篇文章,主要内容如下:
即时通讯安全(一):正确理解和使用安卓加密算法
即时通讯安全第二部分:组合加密算法在即时通讯中的应用探讨
即时消息安全第3部分:常见加密和解密算法及通信安全说明
即时通讯安全(四):安卓关键硬编码风险案例分析
即时通讯安全(5):对称加密技术在安卓系统上的应用实践
即时通讯安全(ⅵ):非对称加密技术的原理及应用实践(本文)
即时通讯安全(七):利用JWT技术解决即时通讯系统中套接字长连接身份认证的难点
即时消息安全(8):你知道HTTPS是使用对称加密还是非对称加密吗?》
理解非对称加密算法
与对称加密算法不同,非对称加密算法需要两个密钥:公钥和私钥。公钥和私钥是一对。如果数据是用公钥加密的,则只能用相应的私钥解密。如果数据是用私钥加密的,则只能用相应的公钥解密。因为加密和解密使用两种不同的密钥,所以这种算法被称为非对称加密算法。
即时通讯安全(6):非对称加密技术的原理及应用实践
常见的非对称加密算法
常见的非对称加密算法有RSA、Elgamal、背包算法、Rabin、D-H、椭圆曲线加密算法等,其中支付宝采用RSA算法。
RSA算法原理
以非对称加密算法RSA为例,其原理只涉及素数因子、欧拉函数、反模元素等。当然,完整的技术原理非常复杂。对于应用层开发人员来说,如果没有必要,建议他们只需要知道内部操作是基于分解素因子和取模,没有必要进行深入的理论研究。
在安卓平台上使用RSA算法的步骤
让我们以Andriod平台为例,看看使用RSA(一种典型的非对称加密算法)的步骤:
010203040506070809101112131415//1,获取密码对象密码=密码. getinstance(“RSA”);//2,通过KeyPairGenerator密钥对=密钥对生成器. getinstance(“RSA”)生成公钥和私钥。生成密钥对();//使用公钥进行加密,使用私钥进行解密(反之亦然)公钥公钥= keypair . getpublic();私有密钥私有密钥=密钥. GetPrivate();//3,使用公钥初始化密码。init(密码。encrypt _ mode,公钥);//4,执行加密操作字节[]result = cipher . dofinal(content . getbytes());//使用私钥初始化密码初始化(cipher.decrypt _ mode,private key//执行解密操作字节[] deresult = cipher.dofinal(结果);
注意事项:
1234//一次性加密数据的长度不能大于117字节;私有静态最终int encrypt _ block _ max = 117//一次解密的数据长度不能超过128字节;私有静态最终int decrypt _ block _ max = 128
批量操作:
01020304050607080910112131415161718192021222324252627282930/* * *批处理操作* * @要处理的param内容数据* @param密码(根据不同的密码,操作可能是加密或解密)* @param blockSize每个操作的块大小(以字节为单位* @返回处理完成后的结果* @ throwsexception */public static byte[]//操作的起始偏移位置是int len = content.length//总数据长度字节[]tmp;//临时保存bytearray outputstream baos = new bytearray outputstream()的操作结果;//如果剩余数据为while(len-offset > 0){如果(len-offset > =块大小){//剩余数据大于或等于一个块大小tmp = cipher.do final(内容、偏移量、块大小);}否则{//不到一个块大小tmp =密码。做最终(内容,偏移,镜头偏移);}//将临时结果保存在内存缓冲区中。偏移量=偏移量+块大小;} baos . close();返回baos . ToByteArray();}
非对称加密算法在实际应用中的应用
1用于认证
如果加密的消息可以用A的公钥解锁,则该消息必须用A的私钥加密,并且可以确定用户是A..
即时通讯安全(6):非对称加密技术的原理及应用实践
用于陌生人的交流
甲和乙互不认识。甲将自己的公钥发送给乙,乙也将自己的公钥发送给甲,这样双方就可以通过对方的公钥对信息通信进行加密。c可以得到A和B的公钥,但他不能解密文。
即时通讯安全(6):非对称加密技术的原理及应用实践
3用于敏感的密钥交换场景
甲首先获取乙的公钥,然后甲生成一个随机密钥,如13245768,然后甲用乙的公钥加密密钥,得到一个加密密钥,如dxs#fd@dk,然后将密文发送给乙,乙用自己的私钥解密得到123456,然后双方用13245768作为对称加密密钥进行通信。即使c截取加密的密钥dxs#fd@dk,它也不能自己解决,因此a和b可以通过对称加密进行通信。
即时通讯安全(6):非对称加密技术的原理及应用实践
本文摘要
不对称加密通常不是单独使用的。它似乎不能取代对称加密。非对称加密比对称加密慢得多,在极端情况下会慢1000倍,因此通常不用于加密大量数据。通常,我们通常将对称加密和非对称加密相结合,例如,非对称加密用于在对称加密(即密钥交换)中加密密钥。
----------------------------------------------------------------------------------
哇谷im_im即时通讯_私有云_公有云-哇谷云科技官网-JM沟通
IM下载体验 - 哇谷IM-企业云办公IM即时聊天社交系统-JM 沟通下载
IM功能与价格 - 哇谷IM-提供即时通讯IM开发-APP搭建私有化-公有云-私有化云-海外云搭建
新闻动态 - 哇谷IM-即时通讯热门动态博客聊天JM沟通APP
关于哇谷-哇谷IM-提供企业即时通讯IM开发-语音通话-APP搭建私有化-公有云-私有化云-海外云搭建
联系我们 - 哇谷IM-即时通讯IM私有化搭建提供接口与SDK及哇谷云服务
公有云和私有云之间有什么区别?类似融云、环信云、网易云、哇谷云?
-------------------------------------------------------
相关文章
原创互联网未来世界企业政府通讯APP办公节约成本类似马云思维-哇谷IM
公有云和私有云之间有什么区别?类似融云、环信云、网易云、哇谷云?
IM云系统即时通讯公有云、私有云、企业云、海外云-哇谷IM团队
im即时通讯社交软件APP红包技术分析(五):微信红包、聊呗红包、诚信红包、高并发技术
im即时通讯-微信红包、支付宝红包、聊呗红包、诚信红包、谈功能逻辑、容灾、运维、架构等。Q红包
更多文章
.
企业即时通讯服务 | 商用红包功能构架 | 哇谷IM首页 | JM沟通IM下载 | IM功能与价格 | 即时通讯动态 | 热门动态 | 关于哇谷 |联系我们