UChat icon indicating copy to clipboard operation
UChat copied to clipboard

ValueError: 211 is not a valid MessageType

Open SuperJinggg opened this issue 2 years ago • 4 comments

image 注册时报错返回不了登录页面,报错信息如上! 个人水平有限解决不了这个bug! 希望请教作者如何运行起来!

SuperJinggg avatar Jun 09 '22 12:06 SuperJinggg

读一下源码吧,项目是三年前做的了

Leeyuxun avatar Jun 10 '22 02:06 Leeyuxun

我看以前也有人提过一样的issues,所以应该是您的代码存在bug! 我看了您代码几天了,修改过几次但没有解决问题。 反复出现两个报错: 一个是说返回的类型不在枚举内 另一个就是说访问list超出范围 但两个错误都出在同一个代码块内。 希望作者有空可以运行一下您的作品,完善一下您的成果!

SuperJinggg avatar Jun 10 '22 03:06 SuperJinggg

读过源码了,原因是run_client和run_server不能放一个目录下运行,因为他们生成的private.pem重名了,所以他们计算产生的共享没有是错的。

举例来说,假设base=3,不考虑 modulus:

  1. 首先运行server,生成private.pem=3,计算public.pem=baseprivate=33=27,然后将public.pem另存为admin_cert.pem;
  2. 然后运行client,生成private.pem=2,计算public.pem=baseprivate=32=9,然后将public.pem另存为ip_cert.pem;
  3. 但是这里需要注意的是,存储二者的私钥的文件都叫private.pem且没有另外保存,所以client的私钥把server的覆盖了!!!
  4. 所以在生成会话密钥的时候,服务端会使用客户端的私钥来产生会话密钥!!!
  5. 即share_key(server) = ip_cert.pem ** private.pem(client) = 9 ** 2 = 81;
  6. 而share_key(client) = admin_cert.pem ** private.pem(client) = 27 ** 2 = 729;
  7. 可以发现,二者的密钥不一致,所以导致解密错误,所以消息类型会出错!!!

Jxpro avatar Jul 03 '22 08:07 Jxpro

注册登录功能是可以的,数据也可以入库,但是添加监听事件好像无效,登录完成或注册完成之后无法弹窗和打开聊天联系人页面,我想问下 博主或者其他人有没有遇到过这个问题? image

942431221 avatar Feb 27 '23 08:02 942431221