在Node.JS中加密和解密持久数据的最佳方法?

时间:2011-07-27 09:20:35

标签: encryption node.js

我正在编写一个Node.JS应用程序,它将聊天记录存储到数据存储区(即MongoDB),以及其他一些用户信息。我已经使用bcrypt为用户密码存储盐渍哈希,所以我已经覆盖了。

加密持久数据的最佳方法是什么?我正在谈论敏感的用户数据,如电话号码和聊天记录。如果我的数据库遭到入侵,我不希望这些信息可用。

我确实需要双向加密/解密,因为我需要能够使用纯文本值(即电话号码是Twilio,聊天日志是供用户查看的旧消息)。

我正在调查node-crypto,但我还没有找到任何以高性能/实时方式执行此操作的示例。

更新:我应该提到聊天记录"实际上是完整的对话,被推到"房间"用户加入他们时实时(即他们可以看到整个聊天记录,或者至少是其中的一部分)。因此,我需要能够快速加密和解密(如果不是实时加密,至少在某种工作流程中)。

2 个答案:

答案 0 :(得分:4)

最好的办法是使用require('crypto')

但是,您需要将其移植到客户端。祝你好运。 (使用browserify不应该太难)

答案 1 :(得分:0)

在服务器端执行此操作,如果您在客户端执行此操作,则需要公开加密密钥。