【问题标题】:Can "Javascript" Decrypt the Data, Encrypted by PHP?“Javascript”可以解密由 PHP 加密的数据吗?
【发布时间】:2013-01-11 16:08:15
【问题描述】:

当我通常从 PHP 返回 Ajax/JSON 时,Javascript 获取它并将其存储在一个变量中,例如:var myJSON = ajaxReturnedJSON; 然后 Javascript 读取它。

我很想知道,php 是否加密了 json:

echo json_encode($encrypted_data); //using some key like: "abc123"
  • 那么Javascript可以用同一个密钥解密回来吗?
  • php和js之间有没有通用的encrypt/decrypt方法?

注意:我知道key 将在 JS 端可见,但我也可以使用 JS Obfucators 到 hex 整个字符,整个 JS file .所以它或多或少会保护,而不是平淡无奇。

欢迎提出任何想法和讨论。

【问题讨论】:

  • 无论你认为你在做什么,你都不是。如果您使用 javascript 对某些内容进行解密,那么您使用的密钥/加密方法对所有人可见且可供所有人使用,因此您最好不要。
  • 当您知道用户可读时,将解密代码和密钥保存在 js 中的意义何在?
  • 那么之前$encrypted_JSON的内容是怎么加密的呢?
  • 你的意思是编码和解码吗?这与加密和解密不同。您可能是指编码(在这种情况下为 json)
  • 使用 JavaScript 解密并将密钥存储在其中就像告诉某人嘿,我的门已为你锁上了,但哦,这是它的钥匙

标签: php javascript json encryption


【解决方案1】:

当然。加密和解密算法只是可以在几乎任何编程语言中执行的数学运算。 Javascript 作为一种编程语言,你可以在其中实现任何你需要的解密算法。

如果这个 Javascript 在浏览器中运行,这通常是毫无意义的。加密用于向某人隐藏信息。在服务器-客户端场景中,存在三方:Web 服务器、浏览器/用户、第三方。现在:

  • 您无需向网络服务器隐藏信息,因为这就是您。
  • 您不能对浏览器/用户隐藏信息,因为这有什么意义?如果您需要隐藏它,请不要首先输出信息。如果浏览器/Javascript可以解密信息,那么用户也可以,所以它不会被隐藏。
  • 传输加密可能会隐藏第三方(中间人等)窥探的信息,但为此已经有了更好的解决方案:SSL/TLS。此外,如果您将解密数据所需的所有信息发送给客户端,第三方也可以拦截此信息并像客户端一样解密数据。

【讨论】:

  • 我知道 key 将在 JS 端可见,但我也可以使用 JS Obfucators 到 hex 整个字符,整个 JS file。所以它或多或少会保护,而不是平淡无奇。
  • 无论如何都是混淆。如果我,用户,想要信息,我只需在脚本上设置一个断点,它会解密信息并从内存中读取解密的内容。浏览器中发生的任何事情对于知道在哪里查看的任何人都是/可以是完全透明的。它不安全。你想隐瞒什么,为什么?
  • 谷歌地图的客户位置坐标。只需要在地图上输出,但不能让它泄露出去。
  • 如果你在地图上显示它们……它们不是“泄露”了吗?!
  • 显示为针点是可以的,只要它是巨大的,并且确切的纬度/经度没有作为一个完整的数据包给出。
猜你喜欢
  • 1970-01-01
  • 2012-08-30
  • 1970-01-01
  • 2015-02-24
  • 2011-08-09
  • 2014-02-26
  • 2019-10-17
相关资源
最近更新 更多