您的位置:首页 > 其它

一种客户端即时通信数据的加密和解密方法

2016-03-05 12:07 597 查看
一种客户端即时通信数据的加密和解密方法

摘要
本发明适用于即时通信领域,提供了一种客户端即时通信数据的加密和解密方法,所述方法包括以下步骤:A.客户端加密本地保存的即时通信数据,并将数据加密密钥上传给服务器;B.服务器利用随机产生的,用于统一加密不同客户端上传的数据加密密钥的一个全局变量,加密保存所述数据加密密钥,并将加密后的数据加密密钥返回客户端;C.客户端保存服务器返回的加密后的数据加密密钥。在本发明中,服务器采用统一的密钥加密保存不同客户端的数据加密密钥,节省了服务器的存储空间,减小了服务器的工作负担,并保证了客户端即时通信数据的安全性。
说明
一种客户端即时通信数据的加密和解密方法

技术领域

[0001] 本发明属于即时通信领域,尤其涉及一种客户端即时通信数据的加密方法和解 密方法。
背景技术
[0002]
即时通信(Instant Messenger,简称IM)系统是一种能够即时发送和接收互联网
消息的系统。用户之间通过即时通信系统可以传递文本消息、文件或者进行音频对话、 视频对话等通信活动。随着计算机网络的快速发展,即时通信系统已经成为用户普遍使 用的通信工具。
[0003] 图1示出了客户端之间进行即时通信的网络结构,多个客户端上运行有即时 通信系统,客户端之间以及客户端与服务器之间通过用户数据报文协议(UserDatagram Protocol, UDP)通信。当用户登录即时通信系统时,作为客户端连接到服务器上,并从 服务器上读取在线联系人名单。当用户和其他的在线联系人进行即时通信时,如果双方 的通信连接比较稳定,双方的消息以UDP的形式在客户端之间传送。如果双方的连接不
稳定或者通信的一方不在线时,消息将通过服务器进行中转。客户端可以是个人计算机 (Personal Computer,简称 PC)、PDA (Personal Digital Assistant,个人数字助理)以及移动 电话等。服务器可以是各种大、中、小型服务器。
[0004] 为了保证通信的安全性,即时通信用户在通信过程中的通信记录、联系人资料 以及用户资料等即时通信数据加密保存在客户端本地,一般采用对称加密技术。当用户 第一次登陆客户端时,客户端随机生成一个加密密钥(key),并使用该key加密本地保存 的即时通信数据,同时使用客户端密钥,例如登陆密码对key进行加密,并保存于客户端 本地。为了避免客户端解密key失败,从而导致即时通信数据解密失败,客户端同时将 key上传到服务器。服务器采用不同的服务器密钥对每个即时通信用户的key进行加密并保存。
[0005] 当用户需要查看本地保存的即时通信数据时,首先使用客户端密钥解密获取 key,然后利用解密后的key解密加密后的即时通信数据。当使用客户端密钥不能解密key 时,则需要请求服务器协助解密,服务器对加密保存的key进行解密后发送给客户端。
[0006] 在上述处理中,由于针对不同客户端提交的key采用不同的服务器密钥进行加密 保存,需要占用服务器较大的存储空间,同时增加了服务器的加解密工作负担。
[0007] 发明内容
[0008] 本发明的目的在于提供一种客户端即时通信数据的加密方法,旨在解决现有技 术中存在的由于针对不同客户端提交的key采用不同的服务器密钥进行加密保存,需要占 用服务器较大的存储空间,同时增加了服务器的加解密工作负担的问题。
[0009] 本发明的另一目的在于提供一种客户端即时通信数据的解密方法。
[0010] 本发明是这样实现的,一种客户端即时通信数据的加密方法,所述方法包括以下步骤:
[0011] A.客户端加密本地保存的即时通信数据,并将数据加密密钥上传给服务器;
[0012] B.服务器利用随机产生的,用于统一加密不同客户端上传的数据加密密钥的一个全局变量加密保存所述数据加密密钥,并将加密后的数据加密密钥返回客户端;
[0013] C.客户端保存服务器返回的加密后的数据加密密钥。
[0014] 所述步骤A进一步包括以下步骤:
[0015] A1.客户端生成数据加密密钥;
[0016] A2.客户端利用所述数据加密密钥加密本地保存的即时通信数据;
[0017] A3.客户端利用客户端密钥加密保存所述数据加密密钥;
[0018] A4.客户端将所述数据加密密钥上传给服务器。
[0019] 所述客户端密钥为即时通信登录密码。
[0020] 一种客户端即时通信数据的解密方法,所述方法包括以下步骤:
[0021] A.客户端向服务器上传采用统一的服务器密钥加密的数据加密密钥;
[0022] B.服务器使用统一的服务器密钥解密获得客户端的数据加密密钥,并发送给客 户端;
[0023] C.客户端利用所述加密密钥解密本地保存的即时通信数据;
[0024] 其中所述统一的服务器密钥为服务器随机产生的一个全局变量,用于统一加密 不同客户端上传的数据加密密钥。
[0025] 在本发明中,服务器采用统一的密钥加密保存不同客户端的数据加密密钥,节 省了服务器的存储空间,减小了服务器的工作负担,并保证了客户端即时通信数据的安 全性。
[0026] 附图说明
[0027] 图1是实现服务器协助客户端加密本地数据的系统结构图;
[0028] 图2是本发明中客户端对即时通信数据加密的实现流程图;
[0029] 图3是本发明中服务器协助客户端解密即时通信数据的实现流程图。
具体实施方式
[0030] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施 例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释 本发明,并不用于限定本发明。
[0031] 在本发明中,服务器采用同一个服务器密钥加密不同客户端提交的加密密钥, 协助客户端完成本地数据的加密,节省了服务器的存储空间,并减小了服务器的加解密 工作负担。
[0032] 图2示出了本发明提供的客户端对即时通信数据进行加密的实现流程,详述如 下:
[0033] 在步骤S201中,当用户第一次通过客户端登陆即时通信系统时,客户端随机产 生一个数据加密密钥(key)。
[0034] 在步骤S202中,客户端使用该key加密本地保存的即时通信数据。
[0035] 在步骤S203中,客户端使用客户端密钥,例如即时通信登陆密码加密key,并 将加密后的密钥(Ukeyl)保存在本地。[0036] 在步骤S204中,客户端将key传送给服务器。
[0037] 在步骤S205中,服务器使用统一的服务器密钥加密key,并将加密后的密钥 (KSs(key))保存在本地,该统一的服务器密钥是服务器随机产生的、用于对不同客户端 上传的数据加密密钥统一进行加密的一个全局变量。
[0038] 在步骤S206中,服务器向客户端返回KSs (key)。
[0039] 在步骤S207中,客户端接收KSs (key),并保存在本地。
[0040] 在本发明中,当用户需要查看本地保存的即时通信数据时,首先采用客户端密 钥解密获取key,并利用key解密加密后的即时通信数据。若采用客户端密钥无法解密获 取key时,则需要请求服务器协助解密。
[0041] 图3示出了本发明中服务器协助客户端解密的实现流程,详述如下:
[0042] 在步骤S301中,客户端向服务器上传本地保存的KSs (key),请求服务器协助解密。
[0043] 在步骤S302中,服务器使用统一的服务器密钥解密KSs (key),获取key。
[0044] 在步骤S303中,服务器将key发送到客户端。
[0045] 在步骤S304中,客户端使用key解密本地保存的即时通信数据。
[0046] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的 精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: