Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ValueError: 211 is not a valid MessageType #10

Open
SuperJinggg opened this issue Jun 9, 2022 · 4 comments
Open

ValueError: 211 is not a valid MessageType #10

SuperJinggg opened this issue Jun 9, 2022 · 4 comments

Comments

@SuperJinggg
Copy link

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

@Leeyuxun
Copy link
Owner

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

@SuperJinggg
Copy link
Author

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

@Jxpro
Copy link

Jxpro commented Jul 3, 2022

读过源码了,原因是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. 可以发现,二者的密钥不一致,所以导致解密错误,所以消息类型会出错!!!

@942431221
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants