• ベストアンサー

PHPで変数を暗号化する方法

PHPで、変数を暗号化したいのですが、 いい方法が有ればぜひ教えて頂きたいです。 たとえば http://abc.com/index.php?id=123 というのを http://abc.com/index.php?id=3934987d98bcd8 のようにして、idをわからないようにしたいのですが・・ よろしくお願いします。

  • PHP
  • 回答数4
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.2

PHPのバージョンはわかりませんが、暗号化ならmcrypt系の関数を使えば良いと思います。 ついでに、No.1さんへ >複合化できるものは暗号化ではないだろうから。 暗号文を平文に戻すことを復号というので、復号出来ないものは暗号ではありません。たぶんハッシュと勘違いしているのではないでしょうか?

参考URL:
http://www.php.net/manual/ja/ref.mcrypt.php
touchme
質問者

お礼

ありがとうございます! mcryptというのは知りませんでした。 たくさん種類があってどれがいいのか よくわかりませんが、調べてみようと思います。 参考になります!

その他の回答 (3)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.4

考え方を整理した方がよいでしょう。 ご質問の内容はformでデータ渡しするときに ブラウザのアドレス欄にかかれるパラメータを可読化しにくい ものにしたい・・・との要望に見うけられます。 もしそうであればHTMLからサーバーに送る一連の手順は PHPではなんともなりませんので無理だと思います。 場合によってはJavascriptなどで変換することにより 実現できるかもしれませんね

touchme
質問者

補足

申し訳ないです。 質問内容がおかしかったです。 No3の補足にも書かせて頂きましたが フォーム入力ではないです。。

noname#39970
noname#39970
回答No.3

>ハッシュ ごめん 言われて気付いた。 自分で復号化(No1は誤変換してるけど)って使っておいて(´∀`;;; 質問の変化パターンがハッシュっぽかったからそう書いただけなんだけど。 ほんとはgetじゃなくpostで渡したら?とも言いたかった

touchme
質問者

補足

書き方に不備がありました。 申し訳ありません。 フォーム入力ではなくて、 リンク先にしたかったので・・ <a href="http://abc.com/index.php?id=3934987d98bcd8">jump</a> みたいな感じです。

noname#39970
noname#39970
回答No.1

難読化するくらいが関の山では? 複合化できるものは暗号化ではないだろうから。 よくあるのが数値じゃなく文字列として扱ってASCII16進に変換かな

touchme
質問者

お礼

ご回答頂きましてありがとうございました! ASCII16進数変換はお手軽でいいと思います。 でももうちょっと難読化したいというのが希望です。。

関連するQ&A

  • JSの変数をphpに受け渡す

    JSの変数 var w の値を、phpに、$abc = w; に受け渡し、 printf($abc); 表示する方法について、 それほど、難しいことではないかと思ったのですが、 解決できず、質問にいたりました。

  • JavaScriptにPHPの変数

    どちらで質問しようか迷いましたけど^^; PHPでの変数をJavaScriptに移動(?)できないのでしょうか? $abs = 30; setTimeout("location.href='abc.php?var=<? echo $abc;?>'",1000*40); このような形で移したいのですが、これはできないのでしょうか?

    • ベストアンサー
    • PHP
  • PHPでパラメータ取得

    ※httpのhを省いています。 //index.phpの内部に if( $_REQUEST['m'] == "abc" ) { echo 'abc'; } if( $_REQUEST['m'] == "cde" ) { echo 'cde'; } というプログラムがあり、 ttp://example.com/index.php?a=abc とした時、「abc」が返され、 ttp://example.com/index.php?a=cde とした時、「cde」が返されるのは分かりますが、「abc」も「cde」も両方共表示できるにはどのようなにしたらURLが良いですか? あるいは、プログラムの一部を変えて両方表示する方法はあるでしょうか? ただし、下記の場合を除くとします。 ttp://example.com/index.php?a=abc if( $_REQUEST['m'] == "abc" ) { echo 'abc'; echo 'cde'; } お手数ですが、よろしくお願い致します。

    • ベストアンサー
    • PHP
  • PHPでFORMから来る変数名を変数にするには

    PHPでFORMから来る変数名を変数にするにはどうしたらよろしいでしょうか? 可変変数など調べたのですが、値を変数にすることは出来ても変数名を変数にする事は難しいようです。 <form action="reg.php"> <input type = "text" name = "comment"> <input type = "submit"> </form> このform内のnameが動的に変わるプログラムで,reg.phpにおいて名前(今ならcomment)を変数に格納したいと思っています。 reg.php 本来なら $comment = _REQUEST['comment']; とすると思うのですが、commentが動的に変動する場合、_REQUEST内をどう書き換えれば良いかが分からず困っています $dynamic_name = _REQUEST['ここをどう書けばよいでしょうか'] このことを考えてから今はform内ですが、formでなくてもどうやって書いてよいか分からず疑問に思いました 例えば $test = 'abc'; としたとき $test_name にtestという文字列を入れたい場合(つまりabcの変数名)どうやって入れたらよいのでしょうか?(もちろんtestと言う名前は動的に変わります) 詳しい方いらっしゃいましたらご回答いただければと思います。 良いアドバイスございましたら教えてください よろしくお願いします

    • 締切済み
    • PHP
  • mixiアプリでjavascriptで取得した変数をPHP変数にするに

    mixiアプリでjavascriptで取得した変数をPHP変数にするには? いつもお世話になっております。 mixiアプリで利用者のIDを取得する方法は、 document.getElementById("id").innerHTML = id; で行うことができたのですが、これはHTML内に、   <span id="id"></span> と記載した場合のみIDが表示されるようになっています。 これをPHPの変数(例:$id)などとして扱うことはできないでしょうか? 任意の場所に<?php echo $id; ?>と書けばIDが表示される仕組みにしたいと考えています。 (最終目的としてはinputのvalueにmixiIDを代入し、次ページへ変数を渡せたいのです) <input type="hidden" name="id" value="◆◆"> ◆◆の部分にIDを代入させたいです 以上よろしくお願いいたします。

  • PHPファイルの暗号化(難読化)方法

    PHPファイルの暗号化(難読化)方法 PHPファイルを暗号化(難読化)する方法を探しています。 現在は、有料の暗号化ツールを使用せずに、 自作で暗号化(難読化)を実施可能かどうかを検討しております。 ファイル全体を暗号化したいのですが、 ファイル内容は、PHPの開始タグ(<?php)、終了タグ(?>)とHTMLタグが混在していて それをbase64_encodeなどを使用し、暗号化をかけた場合、 base64_decodeで復号をかけたデータをブラウザにて実行させたい場合は、 どのようにすればよいか困っています。 eval関数は、phpソースコードを実行するため、 PHPの開始タグ、終了タグをのぞいた、phpコードしか実行できません。 echo関数では、phpソースコードもそのまま出力されます。 PHPの開始タグ、終了タグとHTMLタグ混在していても、 ブラウザ上でphpコードの実行とHTMLタグの出力が実行できる方法はないでしょうか。 ネット上で調べてみましたが、 phpコードのみを暗号化して、eval関数で実行するものしか 発見することができませんでした。 そもそも、ファイル全体を上記のような方法で復号化⇒実行することは無理で、 ファイルの中身を解析し、タグの置き換えや、 eval関数が使用可能な処理とそうでない処理とに分けるようなことになるのでしょうか。 暗号の目的は、ファイルが一見、何を行っているのかわからなく、 そのまま処理を使いまわしできないようにしたいためです。 PHPや暗号化に詳しい人が復号化できてしまうことは、理解しております。 何か方法やアドバイス等、ございましたら、 ご回答頂ければと思います。 phpバージョンは、5.2.14です。 以上、よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpでページ分けする方法を教えて下さい。

    1つのphpでいくつものページを作成したいのですが、 「index.php?id=index」でindexページ、 「index.php?id=profile」でproflieページ、 というふうにする方法があれば、教えて下さい。 宜しくお願いします。

    • 締切済み
    • PHP
  • PHPでクリックすると変数が10増える方法は?

    PHPでクリックすると変数が10増える方法は? PHPの全くの初心者です。 PHPのソースの中にある変数$maxの値を好きな時に10増やすため、 どこかをクリックすれば、$max+=10; が演算されるようにしたいのですが、 どういうソースを書けば、好きなタイミング(クリック時)に、 $max+=10; とすることが出来るでしょうか?

  • html構文をPHPの変数に正しく格納できない

    最近PHPを勉強していまして、変数の格納について、質問させていただきます。 <a href="aaa.index" onclick="window.open('bbb.php?id=ccc&adwares=ddd&url='); return false; rel='nofollow'"><img src="eee.jpg"></a> これは、とあるアフィリエイトプログラムの広告で、リンク先のページにリンクする時に、自分のidを送るというような構文(?)なのですが、 上の様な画像付リンク(アフィリエイトコード)をphpの変数に格納する場合、 <? php $url ='<a href="aaa.index" onclick="window.open(\'bbb.php?id=ccc&adwares=ddd&url=\'); return false; rel=\'nofollow\'"><img src="eee.jpg"></a>'; ?> として、 <?php echo $url ?> としましたが、新しいウインドウが出ずに、自分のサイトからのアクセスとして、 カウントされていませんでした。 どうすれば新しいウィンドウがでて、自分のサイトからのアクセスとして 認証されるでしょうか? それともそういう事は無理なのか?教えてください。

    • ベストアンサー
    • PHP
  • 暗号化(perl)→復号化(php)

    暗号化キーを使用した暗号化→復号化で cgi(perl)で暗号化し、phpで復号化を行おうとしております。 AES暗号を使用したのですが、いろいろ設定を変えて 試みたのですが、うまくいきませんでした。 他に暗号化キーを使用した暗号化の方法がありましたら 教えてください。 暗号化(perl)→復号化(php)で実績のあるモジュールが あれば非常に助かります。 よろしくお願いします。

    • ベストアンサー
    • Perl

専門家に質問してみよう