最近在自己的电脑上简单实现了UDP协议和数据RSA加密。
UDP协议的全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。在网络质量令人十分不满意的环境下,UDP协议数据包丢失会比较严重。但是由于UDP的特性:它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。
TCP-有连接,所以握手过程会消耗资源,过程为可靠连接,不会丢失数据,适合大数据量交换
UDP-非可靠连接,会丢包,没有校验,速度快,无须握手过程
由于最近在接触有关通信的技术,所以通信安全也需要进行一定的了解。
为了保证数据的安全,数据不能被直接明文传输和保存。因此,如何进行安全通信是很有必要的。比如,服务器存储数据使用MD5算法进行摘要保存,数据通过对称加密、非对称加密等形式进行传输等。
其中,RSA算法是一种典型的公开密钥密码。该算法会生成一套对应的公钥和私钥,用户把公钥公开,通信对象把自身数据通过公钥加密发送给用户,然后用户使用私钥进行解密。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。由于进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量数据(我使用的时候最多只能加密117字节)加密。RSA的速度比对应同样安全级别的对称密码算法要慢1000倍左右。