(300分征解)有人知道QQ的加密算法吗?

chenzhou35 2001-12-03 03:10:39
腾讯自己说:
  从QQ0410开始我们将客户端到服务器之间的信息传送使用了128位的密钥进行了加密,大大地提高了QQ的安全性,从0725版本以后QQ 我们对客户端到客户端的信息传送也采用了同样的算法进行加密,这样就可以基本杜绝可能存在的信息炸弹、信息伪装、信息截获等隐患。
  特别需要说明的是我们的加密模式是完全按照公开源代码的方式来设计的,也就是说即使破解者获得了全部的加密算法也依然无法对其他用户的安全构成威胁,相信随着新版的不断推出,QQ将会变得越来越安全,广大QQ用户也可以更加放心地使用我们的产品了。

既然是“完全按照公开源代码的方式来设计的”,那么有没有有哪位大虾知道呢?
先给100分,解决之后另开贴加分。望大家帮手。谢谢。
...全文
2683 81 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
81 条回复
切换为时间正序
请发表友善的回复…
发表回复
cppnet 2002-03-11
  • 打赏
  • 举报
回复
continue......
zjg751206 2002-01-29
  • 打赏
  • 举报
回复
问题很好
chenzhou35 2001-12-17
  • 打赏
  • 举报
回复
不好意思,摸索了一段时间,有些心得,本来打算有空的时候整理一下贴出来分享的。可是最近发生了一堆事。没什么心情整理了。先把分散了吧。
chenzhou35 2001-12-13
  • 打赏
  • 举报
回复
等我在看看就给分了。
mefish 2001-12-10
  • 打赏
  • 举报
回复
学习~~~~`
blre 2001-12-09
  • 打赏
  • 举报
回复
消息使用简单的算法加密,像xor或者伪随机序列一样简单也不是没有可能,但是加密消息的密钥使用更安全的方法加密传输,过一段时间变换一次。
sunyuzhe114 2001-12-09
  • 打赏
  • 举报
回复
请关注:
http://www.csdn.net/expert/topic/411/411075.shtm
分数为150分
十万火级,如能给出答案,再送300分
cmpp 2001-12-09
  • 打赏
  • 举报
回复
我来学习一下!
cmpp 2001-12-09
  • 打赏
  • 举报
回复
我来学习一下!
cmpp 2001-12-09
  • 打赏
  • 举报
回复
我来学习一下!
willstar 2001-12-09
  • 打赏
  • 举报
回复
我晕倒了,这么多!!:)
xuyong 2001-12-09
  • 打赏
  • 举报
回复
wo ke bu huei
shenyong1999 2001-12-07
  • 打赏
  • 举报
回复
我想除了腾讯以外还有一个人一定知道,不过他可能已经隐退了,大家可以访问他的主页看看:
www.zoudan.com
haichuang 2001-12-07
  • 打赏
  • 举报
回复
关注
richincsdn2 2001-12-07
  • 打赏
  • 举报
回复
1212121
winthegame 2001-12-07
  • 打赏
  • 举报
回复
来看看看看
winthegame 2001-12-07
  • 打赏
  • 举报
回复
来看看。
alpasino 2001-12-07
  • 打赏
  • 举报
回复
完啦,谁有算法!!
fdxjj 2001-12-07
  • 打赏
  • 举报
回复
YZGZ!
清泉ys 2001-12-07
  • 打赏
  • 举报
回复
大家可以看看这个
oicq与UPD协议
TCP/IP协议是整个互联网上数据传输的核心,OICQ也是基于TCP/IP协议的UDP协议来实现的。下面来看看 OICQ是怎么样工作的呢?下面我将通过捕捉OICQ2000数据包来进行分析OICQ2000的工作原理:(在WIN2000的安装包里有一个网络监视器,可以用来监视网络上的各个数据包。)
打开WIN2000的网络监视器,然后开始监视网络数据包,然后打开OICQ,登陆后停止捕获数据包。然后就可以进行分析了。下面这个数据包就是利用网络监视器捕捉到的我的OICQ登陆的发送时的第一个数据包:

00000000 00 80 C8 EB 06 3B 00 80 C8 EB 25 18 08 00 45 00 .....;....%...E.
00000010 00 78 48 8A 00 00 80 11 BC 3A C0 A8 00 02 CA 60 .xH......:.....`
00000020 AA A5 0F A0 1F 40 00 64 AA 4E 02 04 05 00 15 F7 .....@.d.N......
00000030 2F 00 BD 77 9D F3 BE 2E 18 9A 86 DA 47 B4 83 41 /..w........G..A
00000040 3A A1 A5 60 89 AD 78 61 D7 EE 6A ED 5C 05 25 EA :..`..xa..j.\.%.
00000050 17 95 B0 5C 3B 69 F1 1C 0F 5D C1 4C 91 FD C3 A8 ...\;i...].L....
00000060 1D 33 9C 86 2A 0F 12 11 EA A8 29 E4 AC 64 D4 D6 .3..*.....)..d..
00000070 A4 96 4D 86 AD C2 19 F1 ED E9 FB 7B 74 99 B7 7A ..M........{t..z
00000080 C3 FB C2 B5 7D 03 ....}.

下面我将解析这个数据包。此个数据包可以分三段来解析:网卡地址段,IP协议段和UDP协议段。

1、网卡地址段
00000000 00 80 C8 EB 06 3B 00 80 C8 EB 25 18 08 00
如上可所视00 80 到第一行的确良08 00为网卡地址段。开始的六个字节00 80 C8 EB 06 3B为对方服务器网 络适配器在内存中的地址,00 80 C8 EB 25 18 ,这六个节嘛就代表我这台机子上的调解在内存中的地址。然后的08表示该数据传输协议将用TCP/IP协议传输。00表示下面将用TCP/IP协议中的IP协议传输。

2、IP协议段
00000000 45 00 .....;....%...E.
00000010 00 78 48 8A 00 00 80 11 BC 3A C0 A8 00 02 CA 60 .xH......:.....`
00000020 AA A5
如上所示45 00 到AA A5之前的代码都代表了IP段的内容。45代表此IP协议版本是4.0版本,IP关长度是20字节。即从45到AA A5的20个字节。00 是代表IP包的优先级。这里是平常的没有设等级。00 78转换成十进制是120。(倒过来算,0078=120(十进制))表示此数据包的所有数据有120个字节。48 8A 代表IP协议的身份验证, 00 00是IP协议的摘要,80传表IP数据包的生存时间。11这里很重要,表示此IP数据段完成以后将由UPD协议来 代替,由此我们可以得知OICQ消息传播是通过UDP协议来实现的。BC 3A是用来校检数据包的正确性的。C0 A8 00 02代表我的IP地址。用计算器可以转化成192.168.0.2。CA 60 AA A5代有目的IP,即202.96.170.165。此IP 数据段就完成了。余下的就是UDP数据段了。

3、UDP数据段
00000020 0F A0 1F 40 00 64 AA 4E 02 04 05 00 15 F7 .....@.d.N......
00000030 2F 00 BD 77 9D F3 BE 2E 18 9A 86 DA 47 B4 83 41 /..w........G..A
00000040 3A A1 A5 60 89 AD 78 61 D7 EE 6A ED 5C 05 25 EA :..`..xa..j.\.%.
00000050 17 95 B0 5C 3B 69 F1 1C 0F 5D C1 4C 91 FD C3 A8 ...\;i...].L....
00000060 1D 33 9C 86 2A 0F 12 11 EA A8 29 E4 AC 64 D4 D6 .3..*.....)..d..
00000070 A4 96 4D 86 AD C2 19 F1 ED E9 FB 7B 74 99 B7 7A ..M........{t..z
00000080 C3 FB C2 B5 7D 03
如上可看到此段即为激动人心的UDP数据段了。我们开始分析。0F A0代表我是通过哪个端口进行发送消息的 ,这里可以换算成4000,即我用4000的端口进行消息发送。1F 40代表腾讯的OICQ主机是通过哪个端口接收消息 ,这里可以换算成十进制的8000。即腾讯的OICQ服务器是通过8000端口接收消息的。00 64代表此UDP数据段的 总的字节是100。AA 4E是拿来校检UDP数据段的数据的。余下的数据就是此UDP数据包传送的数据。而前面都是 一些控制协议。下面我们将解析这些数据。02 04 05 00似乎是一些和版本有关的数。相同版本的数据相同的。 15代表登录服务器,F7 2F 00可能是和一些顺序号有关。接下来的三个字节是从高到低放着你的OICQ号。后面的16位字节是随机产生的16个字节的密钥,64字节口令加密内容。 最后03表示UDP数据结束。一般是固定的值。
当OICQ的服务器收到此登录数据包以后通过验证,服务器将反馈给你一个数据包,这里你的OICQ就上线了。
OICQ上线以后,每隔一段时间服务器向你发送一个数据包,上面有你好友的IP和号码,用此来表示你好友在线的情。你同时也反回一个数据包给服务器。里面当然也包括你的IP了。表示你在线。如果你没有反回一个数据包给服务器,那么就表示你不在线了,这时你在你的朋友的OICQ上就不在线了。

OICQ消息传递原理
00000000 00 80 C8 EB 06 3B 00 80 C8 EB 25 18 08 00 45 00 .....;....%...E.
00000010 00 60 1A D9 00 00 80 11 E6 54 C0 A8 00 02 3D A6 .`.......T....=.
00000020 3B 0F 0F A0 0F A0 00 4C 3D 31 00 04 05 9D 62 DF ;......L=1....b.
00000030 15 FF 62 37 81 9B 0B 1E 83 8F F7 DE 1A 67 E6 2B ..b7.........g.+
00000040 35 28 E1 A9 ED B4 01 7C 92 B5 E4 2D E5 69 70 C5 5(.....|...-.ip.
00000050 2E E1 22 FC AF 1C 25 4D E9 7C E8 BA FD F0 8B 87 .."...%M.|......
00000060 17 95 08 88 95 DD A4 1B 8D DC 36 85 0C 8E ..........6...
如上所示,也是基于上面的UDP协议。所不同的只是UDP传输的数据不同。根据服务器发送来的给来的数据包知道你好友在线的IP,然后当你向好友传送消息的时候,就是根据好友的IP通过UDP协议向对方发送数据包,对方机子上的OICQ收到的你的数据包的时候就反馈一个数据包给你表示已经收到你的消息,否则的话就一直发送。 等到对方反馈数据包为止。当到一定时候对方一直没有反馈数据包给你的时候,就通过服务中转。中转的原理是这样的,将数据包给腾讯的服务器上,由服务器又将数据包发到对方的机子上,这就是通过服务器中转的工作的原理。

00000020 00 04 05 9D 62 DF ;......L=1....b.
00000030 15 FF 62 37 81 9B 0B 1E 83 8F F7 DE 1A 67 E6 2B ..b7.........g.+
00000040 35 28 E1 A9 ED B4 01 7C 92 B5 E4 2D E5 69 70 C5 5(.....|...-.ip.
00000050 2E E1 22 FC AF 1C 25 4D E9 7C E8 BA FD F0 8B 87 .."...%M.|......
00000060 17 95 08 88 95 DD A4 1B 8D DC 36 85 0C 8E ..........6...
(聊天的时间和内容从数据包的偏移地址2B处开始)

好友间消息传送原理基于UDP协议,和登录的数据包一样。只不过所传输的UDP数据为你和好友聊天的记录。如上面的数据段即为即为谈话时间,内容。这些数据都通过加密的形式在网络中转输。

加载更多回复(61)

19,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧