在网上看到了一个使用RSA算法加密的聊天软件,因为要做毕业设计,需要用到这个源码,但是看不懂啊,为什么没有服务器呢?双方是怎么实现从沟通连接到通信再解除连接的呢?RSA算法是怎么实现加密解密的?
菜鸟急需高手帮助!!!!!!!!!!!
和平时的聊天工具原理相似,不过聊天过程中的信息是通过RSA算法加密传送。
"密聊"采用 2048bit 的 RSA 数据加密算法对数据进行加密和数字签名,由于 RSA 加密少量的信息需要大量的时间,因此适合用来传递密钥或对重要而敏感且较少的信息通讯场合,比如身份验证、机密邮件、对完整性要求较高的场合等。 程序内容:1. 通讯程序用的是MFC Socket,监听套接字类CListenSocket,服务器类CServiceSocket,
客户端类CClientSocket。CSecretChatDlg::SendData发送消息包。
2. public_key和private_key是对实现RSA功能的封装类:
private_key::create()是创建私有密钥和公开密钥的函数
public_key::encrypt(vlong& plain)对一个小于m的大整数plain进行加密
private_key::decrypt(vlong &cipher)对一个小于m的大整数cipher进行解密
其他的参数是分别对消息块MessageDollop和消息包MessagePackage进行处理的封装
public_key::vlong_to_PK(PK &pk)是将公开密钥转化成PK结构,这样才能保持下来
public_key::PK_to_vlong(PK pk)把PK结构的公钥转化到vlong类型的公钥
private_key::vlong_to_SK(SK &sk