-
Notifications
You must be signed in to change notification settings - Fork 0
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
Signal协议 js使用 #5
Comments
非常不错的文章!想请教下群聊如何做 e2e 加密呢? |
请问有完整的使用demo吗 我搞了很久 一点头绪都没有 直接把这些代码拷过来执行 很多报错 比如
这里的keyId是从哪里来的 是需要自己提供 还是怎么样 |
@dzcpy |
@1111mp |
@z-950 谢谢回复。刚入手,用都不会用。。。不过在社区找到了一个大佬的帖子,应该有帮助。 |
@1111mp 运行例子确实难找。实际上难点还有后端部署和网络交互接口。客户端方面也许还可以参考测试代码。 |
@z-950 这个不能单纯的用来做消息的加密和解密吗?比如我有自己的IM服务 现在只差一个端到端加密 我就想用这个加密一下 发送的消息的字符串。这样可行吗? |
@1111mp 因为我没有完整实现过,所以不能肯定的告诉你是否可以。但是理论上,后端也需要相关的功能。端到端加密为了安全性,设计了特定的密/公钥交换规则,后端一定需要实现这部分内容,这要求你对这些规则有所了解。自然,我不太清楚全部的流程。Signal有文档,你可以结合着它后端的例子看。 |
@z-950 官方的文档就是看不懂啊 写的都一笔带过 然后自己就在摸索 根据这个人的用法 issues32 目前大概知道怎么去使用了 服务器需要保存一些pubKey 然后客户端根据这个pubKey和自己的priKey 建立回话 然后加密解密可以做到 但是官方文档说 ‘客户端会生成单个已签名的PreKey以及大量未签名的PreKey,并将它们全部传输到服务器。’这个不是很懂
这个生成的preKey 本身就已经做到了吗 还是说需要执行大量的这个方法去存到服务器 |
@1111mp |
验证的时候需要的这些参数 都是在跟客户端对应的 安装客户端的时候生成一次就行? |
我这么使用的时候 加密成功了 解密一直失败 解密的时候
addressCopy的recipientId和deviceId不是用的同一个吗 |
@1111mp 按照介绍,安装时都需要生成,并且持久化储存。后续聊天需要使用新生成的preKey。 |
@z-950 好的 谢谢 解密刚刚已经成功了 signalapp/libsignal-protocol-javascript#41 非常感谢 |
@z-950 就是 每发一条消息 都需要生成 一个preKey 每个消息的preKey都不一样 这样吗 |
各位如果感兴趣的话,不如拉个群一起研究?这块我肯定是要实现一套方案出来的。这样多个人还能多点思路,简化开发 |
@dzcpy 我自己刚建了一个qq群,691383606 有时间一起沟通下 |
@dzcpy 看你也没有回复,我在这里分享一下,我自己理解的一种端到端加密的方案: |
想问下 加密解密都通了 但是这里app说 要本地存储session 用来存储棘轮的状态 方便未读消息解密 那这里拿到session 要怎么把他嵌入 原生代码 逻辑里 能否提供下 |
|
signal协议是一种棘轮式前向保密协议,适用于同步和异步消息传递环境。
signal协议的js实现:
libsignal-protocol-javascript
注意
此为例子。该js库的实现不完整,缺少了原始版本的部分方法,见issue
概念
使用
引入
dist/libsignal-protocol.js
stroe示例,储存在memory中。但规范要求持久化(durable)储存。
The text was updated successfully, but these errors were encountered: