我的客户希望能够在线和离线工作以处理数据,通常是创建或检索产品。
在线时,他想使用 Web 服务和服务器数据库,但是当离线时(网络中断或其他),他希望将数据持久化并加密在 localStorage 中。
我要一个 javascript 加密库,从登录页面获取密码并使用密码派生密钥作为加密密码。密钥将存储在一个简单的 javascript var 中(页面是动态的,因此不会更改页面)。
您对此事有何意见?您会提出什么解决方案?任何好的 javascript 加密库?
我的客户希望能够在线和离线工作以处理数据,通常是创建或检索产品。
在线时,他想使用 Web 服务和服务器数据库,但是当离线时(网络中断或其他),他希望将数据持久化并加密在 localStorage 中。
我要一个 javascript 加密库,从登录页面获取密码并使用密码派生密钥作为加密密码。密钥将存储在一个简单的 javascript var 中(页面是动态的,因此不会更改页面)。
您对此事有何意见?您会提出什么解决方案?任何好的 javascript 加密库?
正如您所说,解决方案是从客户端密码中获取密钥。这样您就不必直接存储它。这是密码管理器 last pass 使用的技术。大多数人为此使用的功能是 PBKDF2。将密钥存储在一个简单的 var 中并不是不安全的,因为如果有人可以读取该 var,他们就可以读取您的客户端正在处理的数据。只需确保在客户端注销时清除数据
值得庆幸的是,这个库已经很好地完成了几乎所有这些事情,并且是由真正诚实的密码学家编写的,而不是一些阅读 Bruce Schneier 的书并认为他们知道关于加密的所有知识的 web 2.0 人。