前言

 

 以上,我学习了对称加密算法在安卓平台上的原理和应用实践(以上链接点进入这里),本文将分享非对称加密技术在当前互联网场景中的应用。

 

 理论上,非对称加密技术比对称加密技术复杂得多,安全得多,但其性能也低得多。无论使用对称加密还是非对称加密,都需要根据业务场景进行组合,因为两种不同的加密算法各有优缺点,没有绝对的优劣。关键是你更看重哪个指数。

 

 本系列的前两篇文章“即时消息安全(一):正确理解和使用安卓加密算法”和“即时消息安全(三):常见加密和解密算法及通信安全说明”,也对非对称加密算法的研究和实践进行了总结,您也可以参考。

 即时消息安全系列文章

 

 本文是即时消息通信安全知识系列的第六篇文章,主要内容如下:

 

 即时通讯安全(一):正确理解和使用安卓加密算法

 即时通讯安全第二部分:组合加密算法在即时通讯中的应用探讨

 即时消息安全第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-JM沟通热门动态博客短视频娱乐生活

关于哇谷-哇谷IM-提供企业即时通讯IM开发-语音通话-APP搭建私有化-公有云-私有化云-海外云搭建

联系我们 - 哇谷IM-即时通讯IM私有化搭建提供接口与SDK及哇谷云服务

即时通讯IM融云世界

IM即时通讯钉钉技术:企业IM钉钉在后端架构上的优越之处

新的市场叫板环信、融云、腾讯云!开源版IM即使聊天工具

企业IM即时通讯聊天办公APP钉钉技术分析交流

哇谷云-怎么样正确认识海外云服务器

公有云和私有云之间有什么区别?类似融云、环信云、网易云、哇谷云?