<?php
defined('BASEPATH') OR exit('No direct script access allowed');
define('URL_TO_PARAM_KEY', 'x09c22f5');
class Encryption {
protected $CI;
public function __construct() {
$this->CI =& get_instance();
}
public static function decryptParam($url) {
$ns1 = base64_decode($url);
$result = $this->CI->xor_string($ns1, URL_TO_PARAM_KEY);
return json_decode($result);
}
public function xor_string($string, $key) {
for ($i = 0; $i < strlen($string); $i++)
$string[$i] = ($string[$i] ^ $key[$i % strlen($key)]);
return $string;
}
}
请帮忙
我建议不要使用静态,或者也使你需要的函数也是静态的。您可能不希望在类中创建类的实例。这只是您不需要的大量开销。您还可以将所有这些移动到帮助程序中(并非 CI 中的所有内容都需要在类中(。
class Encryption {
/* not needed
protected $CI;
public function __construct() {
$this->CI =& get_instance();
}
*/
public static function decryptParam($url) {
$ns1 = base64_decode($url);
$result = self::xor_string($ns1, URL_TO_PARAM_KEY);
return json_decode($result);
}
public static function xor_string($string, $key) {
for ($i = 0; $i < strlen($string); $i++)
$string[$i] = ($string[$i] ^ $key[$i % strlen($key)]);
return $string;
}
}
由于这两个方法属于同一个类,因此只需替换它:
$this->CI->xor_string($ns1, URL_TO_PARAM_KEY);
有了这个:
$this->xor_string($ns1, URL_TO_PARAM_KEY);