情况:如何在页面getuser.php中加密json,然后在index.php中对其进行解密?
我有一个getuser.php,用示例输出创建echo (json_encode($data));
{
"id": 2,
"username": "Teeto",
"surname": "",
"password": "somepassword",
"lastlogin": "2014-02-18 15:35:01",
"level": 0
}
然后我将数据发送到jquery
$.ajax({
type: 'POST',
url: "getuserdata.php?id="+ otherPro,
datatype: 'json',
success: function(data){
$.each(data, function (key, value) {
$( '#' + key ).val( value );
});
}
});
感谢您的任何提示。
答案 0 :(得分:5)
绝对没有理由允许管理员访问以查看当前密码。最多应该允许管理员更改它们(不需要查看它们。)只需从json中删除密码字段并继续。一旦从中删除密码,就不需要简单地使用ssl来加密json了(因为你在javascript中进行的任何加密/解密都可以很容易地进行逆向工程。)
答案 1 :(得分:1)
使用getJSON
通过发送GET
请求加载JSON数据,并使用$.each
遍历列表:
$(document).ready(function() {
$.getJSON('file.json', function(result) {
$.each(result, function(i, field){
$("#results").append(i + '=>' + field + '<br/ >');
});
});
});
但正如评论中所述, 真的 不应以明文形式存储/发送密码。
答案 2 :(得分:1)
简短而甜蜜的答案是您必须忘记使用JavaScript加密或解密。从开发的角度来看,它需要额外的时间,并且不能保护您的数据。您的JavaScript代码可以由第三方修改和操作。
正如Kevin建议的那样,在这种情况下,您唯一的解决方案是使用SSL ,它会在您的数据从一个页面传递到另一个页面时对其进行加密。这不是一个panecea,因为它有自己的关注点。 [0]但是,如果您有兴趣保护用户的密码免受攻击者和窃听者的侵害,则SSL是必须执行的步骤。
几周前,我问了一个关于在JavaScript中使用加密的类似问题。 [1]我想使用 Stanford的JS Crypto Library 来处理小比特数据的加密。虽然斯坦福大学的图书馆在加密方面很强大,但我不得不排除它,因为攻击者可以修改它的实现。这是我收到的一个有用的答案:
Javascript从服务器发送到客户端;随你 你做客户端的密码学只会提供安全性 客户端运行的代码在传输过程中未被更改 - 这意味着仍然需要SSL,至少要确保这一点 客户端接收和运行的是真正的实现 您的协议。 [2]
编辑:这与您的担忧没有直接关系,但如果您通常对使用JavaScript进行加密或解密感兴趣,则可以考虑通过其他方式提供代码。如果您创建 Google Chrome插件 [3]来处理这些流程,您将更加确定代码未被修改。开发加密协议总是存在很大的风险,我不会对涉及敏感信息的任何应用程序执行此操作,但我认为插件方法很有意思。 [4]