COOKIE暗号化機能

WBOY
リリース: 2016-07-25 09:11:15
オリジナル
1010 人が閲覧しました
使用法の例:
$eC = 新しいエンコードクッキー;
$e = $eC->encodeC ( md5 ('パスワード') ); $d = $eC->decodeC ( $e );
echo "元の Cookie 値: ".$d; エコー「

」; echo "エンコードされた Cookie 値: ".$e;
  1. define ("DOMAIN", "54dev.com");
  2. define ("PATH", "/");
  3. define ("COOKIEID", "encodeCookie");
  4. define ("COOKIEKEY", "raz "); // 最大 5 文字が適切です
  5. /**
  6. * class encodeCookie
  7. *
  8. * Cookie を送信する前にエンコードします
  9. *
  10. */
  11. class encodeCookie {
  12. /**
  13. * encodeCookie::$config
  14. *
  15. * 設定
  16. *
  17. */
  18. var $config;
  19. /**
  20. * encodeCookie::encodeCookie()
  21. *
  22. * コンストラクター
  23. *
  24. */
  25. function encodeCookie () {
  26. $this->config = array ();
  27. $this->config['cookie_key'] = COOKIEKEY;
  28. $this->config['cookie'] = array (
  29. 'cookie_id' => COOKIEID,
  30. 'cookie_path' => PATH,
  31. 'cookie_domain' => DOMAIN,
  32. );
  33. }
  34. /**
  35. * encodeCookie::set_Cookie()
  36. *
  37. * Cookie を設定します
  38. *
  39. * @param string $value
  40. * @param integer $sticky
  41. */
  42. function set_Cookie ($name, $value = "", $sticky = 0) {
  43. $exipres = "";
  44. if ($sticky == 1) {
  45. $expires = time() + 60*60*24*365;
  46. }
  47. $name = $this-> ;config['cookie']['cookie_id'].$name;
  48. $newValue = $this->encodeC ($value);
  49. @setcookie($name, urlencode($newValue), $expires, $this ->config['cookie']['cookie_path'], $this->config['cookie']['cookie_domain']);
  50. }
  51. /**
  52. * encodeCookie::get_Cookie()
  53. *
  54. * Cookie を取得します
  55. *
  56. */
  57. function get_Cookie ($ name) {
  58. if ( isset( $_COOKIE[$this->config['cookie']['cookie_id'].$name] ) ) {
  59. $cookie = urldecode ( $_COOKIE[$this->config ['cookie']['cookie_id'].$name] );
  60. return $this->decodeC ($cookie);
  61. } else {
  62. return FALSE;
  63. }
  64. }
  65. /**
  66. * encodeCookie::encodeC()
  67. *
  68. * Cookie をエンコードします
  69. *
  70. */
  71. function encodeC ($cookie) {
  72. $newcookie = array ();
  73. $cookie = Base64_encode ($cookie);
  74. for ( $i=0; $i $newcookie[ $i ] = ord ( $cookie[ $i ] ) * $this->encodeKey ();
  75. }
  76. $newcookie = implode ('.', $newcookie);
  77. return $newcookie;
  78. }
  79. /**
  80. * encodeCookie::decodeC()
  81. *
  82. * Cookie をデコードします
  83. *
  84. */
  85. function decodeC ($oldcookie) {
  86. $newcookie = array ();
  87. $cookie =explode ('.', $oldcookie);
  88. for ( $i=0; $i $newcookie[ $i ] = chr ( $cookie[ $i ] / $this->encodeKey () );
  89. }
  90. $newcookie = implode ('', $newcookie);
  91. $newcookie = Base64_decode ($newcookie);
  92. return $newcookie;
  93. }
  94. /**
  95. * encodeCookie::encodeKey()
  96. *
  97. * キーをエンコードします
  98. *
  99. */
  100. function encodeKey () {
  101. $newkey = 0;
  102. for ( $i=0; $i<=strlen ( $this->config['cookie_key'] ); $i++ ) {
  103. $newkey += ord ( $this->config['cookie_key '][ $i ] );
  104. }
  105. return $newkey;
  106. }
  107. }
复制代


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート