Как зашифровать / расшифровать параметры URL в javascript?
прежде чем кто-нибудь прыгнет и скажет: "о!! это плохая идея", я знаю это.
Я хочу, чтобы ключ и значение в строке запроса не были легко видны конечному пользователю.
У меня есть что-то вроде этого google.com/?category=textile&user=user1
Мне нужно сделать его неразборчивым, как это:google.com/?kasjdhfkashasdfsf32423
есть ли способ достичь этого в JavaScript. Я уже видел это
но я не думайте, что кодирование решит проблему. Кроме того, этот код полностью находится на стороне клиента. Я знаю, что это не безопасно, но мне просто нужна эта наивная, слабая защита. Пожалуйста помочь.
редактировать
Я прошу прощения, если мой вопрос не был ясен ранее.
URL-адресом google.com/?category=textile&user=user1
передается из другого приложения.
значения, переданные в строке запроса, напрямую управляют отображаемым пользователем. Как и любой, у кого нет технических знание может легко изменить значение и просмотреть данные, соответствующие другой категории или пользователю. Мне нужно сделать это непонятным, чтобы это не было очевидно. Если пользователь является технарем и выясняет используемое шифрование, то это нормально. Мне нужно решение stop-gap, пока у нас не будет лучшей архитектуры
2 ответов
Если вы не ищете серьезную сильную криптографию, вы можете использовать ROT13:
http://en.wikipedia.org/wiki/ROT13
этого достаточно для слегка запутанных ключей / значений в ваших URL-адресах.
вы можете использовать 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