18

在有人跳进来说“哦!!那是个坏主意”之前,我知道它是。

我想保留查询字符串中的键和值,使最终用户不容易看到。我有这样的事情,google.com/?category=textile&user=user1 我需要让它像这样难以理解:google.com/?kasjdhfkashasdfsf32423

有没有办法在javascript中实现这一点。我已经看过了

我已经看过这个这个

但我认为编码不会解决问题。此外,此代码完全在客户端。我知道这并不安全,但我只需要这是一种幼稚、薄弱的防御。请帮忙。

编辑

如果我之前的问题不清楚,我深表歉意。

该 URLgoogle.com/?category=textile&user=user1正在从不同的应用程序传递。

查询字符串中传递的值直接控制向用户显示的内容。照原样,任何没有技术知识的人都可以轻松更改值并查看与不同类别或用户对应的数据。我需要把它弄得难以理解,这样它就不明显了。如果用户是技术人员并计算出所使用的加密,那就没问题了。在我们有更好的架构之前,我需要一个权宜之计的解决方案

4

2 回答 2

33

您可以使用 base64。Javascript 具有执行此操作的本机函数:

alert(btoa("category=textile&user=user1")); // ==> Y2F0ZWdvcnk9dGV4dGlsZSZ1c2VyPXVzZXIx

并扭转它:

alert(atob("Y2F0ZWdvcnk9dGV4dGlsZSZ1c2VyPXVzZXIx")); // ==> category=textile&user=user1

如果您有 unicode 字符串,请仔细阅读文档,它有点不同:https ://developer.mozilla.org/en-US/docs/Web/API/Window.btoa

于 2013-11-06T21:05:05.500 回答
8

如果你不寻找严重的强加密,你可以使用 ROT13:

http://en.wikipedia.org/wiki/ROT13

这足以稍微混淆 URL 中的键/值。

于 2013-11-06T20:58:06.507 回答