具有节点应用程序的用户之间的消息

时间:2015-02-20 18:36:58

标签: node.js encryption messages

我想在我的iOS和Android应用程序中实现应用内消息传递,我不确定应该如何创建后端功能。从我的后端与Node.js运行之前,用户等与MongoDB一起存储。

我认为我很容易通过保存数据库中的消息并使用新消息向收件人发送推送并在应用程序中显示消息来实现消息传递,但我不希望消息可读服务器。因此,有必要在数据库中加密它们并在客户端上解密它们。

是否有人对如何实施加密或使用节点框架有任何建议?我看过socket.io,但这似乎是为实时聊天应用程序创建的,这不是我正在寻找的。我也看过RabbitMQ,但我真的不明白它是否符合我的要求。

非常感谢提前!

1 个答案:

答案 0 :(得分:2)

您正在谈论端到端加密。如果加密密钥在应用程序内部硬编码,则加密很容易破解。为了实现这样的功能,您需要一个适用于iOS的库和一个适用于Android的库。

对于iOS,我建议使用OpenSSL并实施加密方案(公钥加密)。对于Android,您可以使用Spongy Castle库。

由于iOS推送通知大小的限制,通过PUSH发送数据不是一个好主意。 您还可能(可能)需要为用户实施登录认证机制。 你可以在这里走两条路..

  1. 让服务器为客户端生成解密密码

  2. 单独的密钥,(数据库上的哈希密码以及客户端上的公共/私有密钥)

  3. 我没有使用过socket.io/rabbitmq,所以很遗憾我无法帮助你。看起来你是新手,我会好好看看&阅读公钥密码学。 http://en.wikipedia.org/wiki/Public-key_cryptography#Examples