客户端敏感数据加密

Encryption of sensitive data on client side

我们正在构建一个使用 indexedDb 在客户端存储数据的离线网络应用程序。数据将离线存储,当有网络时,它会将此数据同步到服务器。

问题

我们正在使用 aes 来加密 indexedDb 中的数据,但我们不确定如何在客户端管理加密密钥。似乎没有办法在 javascript 中维护加密密钥,除非任何可以使用开发工具的人都可以使用它。我们不能依赖服务器,因为该应用程序可能几周都无法连接到服务器。

有没有人知道我们如何在客户端安全地管理这个加密密钥?

据我所知,离线存储的信息没有 100% 的安全性。但是你可以通过缩小和混淆你的 JavaScript 文件来给 hackers/crackers 带来非常困难的时间。

示例:
http://dean.edwards.name/packer/
http://www.danstools.com/javascript-obfuscate/index.php

如果您不想在线提交有价值的算法,请尝试搜索 minifying/obfuscating 可离线使用的工具。

希望这个回答对您有所帮助。