加密javascript中的字符串,可以使用密码解密,不能轻易强制

时间:2015-12-25 06:42:19

标签: javascript json encryption passwords aes

我希望能够做到这一点:

  1. 使用用户密码
  2. 加密浏览器中的字符串
  3. 将该字符串发送到我的服务器
  4. 允许任何人从我的服务器请求该字符串
  5. 该字符串可由具有密码的人解密
  6. 任何没有密码的人都需要数百万美元/年来解密字符串
  7. 我发现this thread使用AES来加密和解密密码。但是用我的数据测试它,解密函数在50毫秒内运行。这只是在浏览器中一天就有1,728,000次密码尝试。如果有人真的想打破加密,我相信它可以在短时间内完成。

    我的第二个直觉说我应该把它放在密码后面的服务器上。您发送所需数据的ID和密码,然后发回您的加密数据。这解决了#3的问题,但如果我真的想要, I 仍然可以解密数据。

    有没有办法做到这一点,我,服务器运行,不需要信任?假设用户可以信任/验证他们发送给服务器的数据,以及它在浏览器中的加密方式。

1 个答案:

答案 0 :(得分:0)

等等,我想我已经明白了。

用户将拥有一个密码,其密码将被发送到服务器。用户只有拥有密码的哈希值才能访问他们的数据。

数据将使用AES等加密,但用于加密的密钥是其密码的哈希值。突然间,每天1,728,000次尝试看起来很小,因为密码不会出现在字典或其他任何内容中。它将是一个非常长的无意义的字符串。

任何阅读本文的人都可以确认这是否正确?