1、对(大批量)数据进行加密一. 加密算法介绍= =1.加密有两种方式:对称加密和非对称加密;2.对称加密:1.最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key);2.对称加密有很多种算法(DES、IDEA 等) ,它加密效率很高;3.对称加密通常使用的是相对较小的密钥,一般小于 256 bit。密钥越大,加密越强,但加密与解密的过程越慢;4.对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,密钥的保密性对通信性至关重要;5.对秘钥的管理十分重要;一 一一 一件 件 A(件 件 )一 一
2、 (一 一 一 一 )一 一 (一 一 一 一 )件 件 A(件 件 )3.非对称加密:1.非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey);2.非对称加密算法的秘钥保密性比较好,它消除了最终用户交换密钥的需要;3.非对称密码体制的特点:算法强度复杂、安全性依赖于算法与密钥, 其加密解密速度 没有对称加密解密的速度快;一 一一 一件 件 B(件 件 )一 一 (一 一 一 一 )一 一 (一 一 一 一 )件 件 B(件 件 )二.设计方案:1.公司业务为: 大数据量的信息加密,推荐使用对称加密;2.采用对称秘钥加密, 分为两个过程:1)秘钥生成过程
3、:1.简单方法:1.提前对每台客户端分配秘钥( 秘钥个数=2 ), 2.采用轮训的方式:进行秘钥的切换.1.每个 TCP链接之内,采用相同的秘钥. 断开再次重新链接,就切换秘钥;1.每个加密后的文件应该有个标识: 表示是 被哪个秘钥进行加密的;2.解密时,在后台根据标识进行判断,采用哪个秘钥; 3.这种方法,客户端的秘钥个数是有限且数量较少,不会选择秘钥时耗 费大量时间.Object1 一 一 一 0301050204 06件 件 1 一 一 12.复杂办法:1.客户端和服务器 构建一套秘钥管理程序;1.客户端: 拥有两种秘钥更新, 主动更新, 被动更新(服务器进行推送).1.主动更新: 1.
4、客户端发送更新秘钥信息, 2.服务器将生成的秘钥信息 发送给客户端 3.客户端采用新秘钥进行加密;2.被动更新: 1.服务器每天定时向已登录的客户端推送各自的秘钥更 新数据; 2.服务器需要对以前的秘钥进行管理记录;2)加密过程:1.需要至少有四个接口:1.raw加密接口, 2.pending 的加密接口;3.raw解密接口, 4.pending 的解密接口;件 件 件 (件 件 件 )一 一 一 一 一 一 一一 一 一 一 一 一一 一 一 一 一 一 一一 一 一 一 一 一一 一 一 一 一 一 一一 一 一 一 一 一 一一 一 一 一 一 一 一一 一 一 一 一 一 一件 件 件
5、 件 件 件pending一 一 一 一 pending一 一 一 一raw一 一 一 一raw一 一 一 一一 一 一 一 一 一 一 一一 一 一 一一 一 一 一件 件 件 (件 件 OK)一 一 一 一 一 一 一 一 OK一 一 一 一 (一 一 OK)一 一 一 一 一 一 一 一一 一 一 一 一 一一 一 一 一 (一 一 OK)一 一 一 一 (一 一 OK)一 一 一 一 (一 一 OK)一 一 一 一 (一 一 OK)2.可以将上述接口再封装为一个对外接口,定一个标识位,标识加解密; int DecAndEncData(int tag, char *key, int ke
6、yLen, unsigned char *inData, int inDataLen, unsigned char *outData, int *outDataLen)1.判断标识,进行加密或解密;if(tag) 2.判断输入的数据长度,判断采用哪种方式进行加密或者解密;if(inDataLen)3.不打补丁的加密或者解密else4.打补丁的加密或解密3. 加密接口的传输数据中的使用:需要客户端的 UI界面有个加密按钮, 点击时, 底层程序就会调用这个接口, 把要加密的文件或数据全部加密,然后再进行分包发送; 在接收端把所加密文件或数据全部接收完后, 在进行解密. 保证一份数据或文件 在加解密之前必须是完整的; 可以减少数据处理时的复杂度.