请教大神,如何实现二次加密

litj 22天前 122

客户需求是在野火加密基础上,进行二次加密,哪位大神给指导一下如何实现

最新回复 (9)
  • HeavyRain 22天前
    引用 2
    有2个办法,一个是在消息的encode和decode的地方做加解密,消息进入到协议栈时,需要encode为messagepayload,这里你们自己做加密。但从协议栈读取出来消息,需要调用decode为具体消息内容,在decode之前做解密。从SDK里找到encode和decode的地方直接处理就行。缺点有几个问题,1是协议栈内搜索不再支持了,因为客户端数据库保存的加密了;2 推送无法使用;3敏感词过滤无法使用。
    另外一个办法是我们在协议中内添加一个回调,当发送时和接受消息时,调用回调对消息进行加解密。好处是客户端数据库保存的是解密后的,可以支持搜索。缺点还有第一种方法的2、3。还有个问题是接收到大量消息时,需要大量的计算来解密,首次登录或者其他同步大量消息时会延长处理时间
  • HeavyRain 22天前
    引用 3
    你们想要用那种方法,如果第一种,可以自己来实现。如果第二种,需要我们来添加,请在我们开源项目的im-server上面提issue,我们安排进行开啊。
  • litj 14天前
    引用 4
    音视频相关消息也可以做加解密么?
  • HeavyRain 14天前
    引用 5
    这个消息加密只是消息,不包括音频/视频/文件等。如果需要加密,可以在发送前加密另存成一个文件,发送这个加密后的文件,对应收到要解密再后续播放或者打开
  • HeavyRain 14天前
    引用 6
    如果你问的是音视频通话,也是加密的,webrtc默认加密的
  • ynyzjay 9天前
    引用 7
    HeavyRain 如果你问的是音视频通话,也是加密的,webrtc默认加密的
    问下比如文字消息TextMessageContent  的encoe 和decode 分别会在什么情况下调用
  • HeavyRain 9天前
    引用 8
    在协议栈和IM服务没有区分消息内容,格式都是统一MessagePayload。在客户端的SDK里会做消息内容和MessagePayload的转换,读取消息或者收到消息会做decode,当发送消息会调用encode。SDK代码都是开源的,你可以看到对应的代码,可以从getMessages方法查一下,看一下从协议栈得到的消息是如何处理的
  • ynyzjay 8天前
    引用 9
    HeavyRain 在协议栈和IM服务没有区分消息内容,格式都是统一MessagePayload。在客户端的SDK里会做消息内容和MessagePayload的转换,读取消息或者收到消息会做decode,当发送消息会调用 ...
    我问下 数据库存储的是MessagePayload对象吗
  • HeavyRain 8天前
    引用 10
    是的
返回