1

php のように、$_GET を使用して url に変数を渡します。匿名にしたいユーザーの ID を含む変数を渡したいので、変数を渡す前に変数を暗号化できる何かを行うことができます。ページで一度取得すると、復号化して元の変数値を取得できます。

例:

変数 $id=10; を渡す前に。

$id=dasfgjg; として URL に渡されます。

URL から取得して復号化した場合 $id=10;

これはどのように達成できますか?

4

3 に答える 3

2

サーバー側でのみ暗号化/復号化する場合は、RC4 暗号を使用できます。

http://www.phpkode.com/source/s/rc4-cipher-0-1/rc4-cipher-0-1/RC4.php

$my_secret_key = '3klmsd94mms.saeo44o!!3le';

if( isset($_GET['p']) ) {
  $id = RC4::decrypt($my_secret_key, $_GET['p']);
  // ....
}
else {
  echo '<a href="/?p='.RC4::encrypt($my_secret_key, 12).'">Go to the page</a>';
}
于 2012-05-04T11:17:33.500 に答える
1

データベース内のレコードごとにランダムな文字列を生成し(一意であることを確認してください)、そこにも保存します。次に、これを識別子として使用します。もちろん、これは暗号化とは何の関係もないことに注意してください。

于 2012-05-04T11:02:33.310 に答える
0

これを実現する手っ取り早い方法 (リクエストごと)

  • クライアントで、'xx:10:yy' のような文字列を作成します。ここで、xx と yy はランダムな文字で構成される文字列です。
  • クライアントで、ユーザーのソルト/ハッシュ化されたパスワードのソルト化されたハッシュを作成します
  • このハッシュをキーとして使用し、最初の箇条書きの文字列をクリアテキストとして使用して、crypt.js などで暗号化します。
  • リクエストで、暗号化された文字列とソルトを送信します
  • サーバーでは、送信されたソルトとユーザーのソルト/ハッシュ化されたパスワードを使用してキーを回復します
  • サーバー上で mcrypt または friends を使用して文字列を復号化します
  • サーバー上で、標準の PHP テキスト処理関数を使用して、復号化された文字列からペイロードを復元します。
于 2012-05-04T11:08:38.137 に答える