| @@ 250-261 (lines=12) @@ | ||
| 247 | * @param string |
|
| 248 | * @return string |
|
| 249 | */ |
|
| 250 | protected function _xor_decode($string, $key) |
|
| 251 | { |
|
| 252 | $string = $this->_xor_merge($string, $key); |
|
| 253 | ||
| 254 | $dec = ''; |
|
| 255 | for ($i = 0, $l = strlen($string); $i < $l; $i++) |
|
| 256 | { |
|
| 257 | $dec .= ($string[$i++] ^ $string[$i]); |
|
| 258 | } |
|
| 259 | ||
| 260 | return $dec; |
|
| 261 | } |
|
| 262 | ||
| 263 | // -------------------------------------------------------------------- |
|
| 264 | ||
| @@ 274-284 (lines=11) @@ | ||
| 271 | * @param string |
|
| 272 | * @return string |
|
| 273 | */ |
|
| 274 | protected function _xor_merge($string, $key) |
|
| 275 | { |
|
| 276 | $hash = $this->hash($key); |
|
| 277 | $str = ''; |
|
| 278 | for ($i = 0, $ls = strlen($string), $lh = strlen($hash); $i < $ls; $i++) |
|
| 279 | { |
|
| 280 | $str .= $string[$i] ^ $hash[($i % $lh)]; |
|
| 281 | } |
|
| 282 | ||
| 283 | return $str; |
|
| 284 | } |
|
| 285 | ||
| 286 | // -------------------------------------------------------------------- |
|
| 287 | ||