足够安全,可以使用javascript进行加密和解密

足够安全,可以使用javascript进行加密和解密,javascript,save,encryption,Javascript,Save,Encryption,这是javascript库: 我想用它来: 加密我的站点中用户的数据,然后发送到数据库服务器 将加密数据从数据库发送到浏览器客户端,用户输入密钥,然后 然后显示原始数据 三,。数据库不保存密钥,因此更安全 我想知道这条路是否足够安全,那怎么办 以及passpack.com如何保存密码 感谢您链接到的jsencryption.js库 使用的加密是256位AES,这是美国政府使用的标准 与常规密码保护不同,所有操作都是使用JavaScript在浏览器中本地完成的,因此您的未加密信息永远不会出现在i

这是javascript库:

我想用它来:

  • 加密我的站点中用户的数据,然后发送到数据库服务器
  • 将加密数据从数据库发送到浏览器客户端,用户输入
    密钥
    ,然后
  • 然后显示原始数据

    三,。数据库不保存密钥,因此更安全

    我想知道这条路是否足够安全,那怎么办

    以及
    passpack.com
    如何保存密码


    感谢您链接到的jsencryption.js库

    • 使用的加密是256位AES,这是美国政府使用的标准
    • 与常规密码保护不同,所有操作都是使用JavaScript在浏览器中本地完成的,因此您的未加密信息永远不会出现在internet上,甚至不会出现在服务器上
    • 加密文本是安全的,只要你把密钥保密。不要丢失钥匙。如果你这样做了,没有人能帮助你

    因此,是的,如果密码足够强大,这看起来是非常安全的(除非有人干扰用户的浏览器或计算机,想想键盘记录器或恶意firefox插件或网站本身破坏脚本)。

    似乎有几种JavaScript AES-256加密实现,包括:

    在使用这些测试之前,应该使用AES测试向量对它们进行测试。来自hanewin.net的实现[声明这样做][1]

    [1] :-


    但是,我对您的底层设计有一些疑问。你的威胁模型是什么?很多人都在考虑在浏览器中进行加密/解密。但这并不一定更安全,因为如果有人闯入服务器,他们可以诱杀浏览器的JavaScript。当然,这将保护您免受有人破坏您的数据库服务器和下载表,但服务器端加密也可以做到这一点。服务器端加密的最大优点是,您可以使用OpenSSL等受信任的模块,而不必担心JavaScript实现的质量。

    您想向谁隐藏数据?听起来你想对你自己(服务器管理员)和任何潜在的窃听者隐藏它,只允许用户使用他的密钥访问数据?仅仅依靠Javascript是否足够安全?不可以。可以关闭Javascript。您将不得不依赖服务器端实现。@Russell我认为这不是一个有效的论点。如果关闭javascript,发送的数据将采用错误的格式(甚至根本不发送),服务器将不会响应。您的安全性只与您的密码/密钥一样安全。如果任何人都有钥匙,那么你就失去了安全感。对于公钥/私钥密码,私钥也是如此。为什么要重新实现ssl/https?