web-dev-qa-db-ja.com

JavaScriptでURLパラメータを暗号化/復号化する方法は?

誰かが飛び込んで「おお!!それは悪い考えだ」と言う前に、私はそれを知っています。

クエリ文字列のキーと値の両方を保持して、エンドユーザーに簡単に表示されないようにします。私はこのようなものを持っていますgoogle.com/?category=textile&user=user1このようにわかりにくくする必要があります:google.com/?kasjdhfkashasdfsf32423

これをJavaScriptで達成する方法はありますか?私はすでにこれを見ました

私はすでに this および this を見ました。

しかし、エンコーディングで問題が解決されるとは思いません。また、このコードは完全にクライアント側にあります。安全ではないことは知っていますが、これが単純で弱い防御であることだけが必要です。助けてください。

編集する

私の質問が以前に明確でなかった場合、私は謝罪します。

URL google.com/?category=textile&user=user1が別のアプリケーションから渡されています。

クエリ文字列で渡される値は、ユーザーに表示されるものを直接制御します。このように、技術的な知識がないユーザーは、簡単に値を変更して、別のカテゴリまたはユーザーに対応するデータを表示できます。はっきりしないように、これをわかりにくくする必要があります。ユーザーが技術者であり、使用されている暗号化を把握している場合は、問題ありません。より適切なアーキテクチャが整うまで、一時的な解決策が必要です

10
Raghav

強力な強力な暗号を探していない場合は、ROT13を使用できます。

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

これは、URLのキー/値を少し難読化するには十分です。

7
olegarch

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

17
Sebastien C.