1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
/**
* 広告コード暗号化・複合化クラス。
* $Id: CcodeCryptor.inc,v 1.1 2015/10/08 11:18:56 wanggb Exp $
* @author iimuro
* @access public
* @package jp.aimslib.util
*/
class CcodeCryptor {
/**
* ユーザIDとバナーIDをくっつけて複合化します。
* @return String 暗号化した文字列
*/
public static function encode($user_id, $banner_id) {
$mid_len = strlen("" . $user_id);
$dec = $mid_len . "" . $user_id . "" . $banner_id;
//$hex = dechex($dec);
$hex = base_convert($dec, 10, 16);
return $hex;
}
/**
* 暗号化された値をuser_idとbanner_idに複合化します。
* @param String $c_code 暗号化された文字列
* @retrun array (user_id, banner_id)からなる配列
*/
public static function decode($c_code) {
$id_array = array();
//$dec = hexdec($c_code);
$dec = base_convert($c_code, 16, 10);
$mid_len = substr($dec, 0, 1);
$dec = substr($dec, 1);
$user_id = substr($dec, 0, $mid_len);
$banner_id = substr($dec, $mid_len);
return array($user_id, $banner_id);
}
/**
* ユーザIDとバナーIDとメールIDをくっつけて複合化します。
* @return String 暗号化した文字列
*/
public static function encode3($user_id, $banner_id, $mail_id) {
$c_code = CcodeCryptor::encode($user_id, $banner_id);
$mid_len = base_convert(strlen($c_code), 10, 16);
$mail_hex = base_convert($mail_id, 10, 16);
$d_code = $mid_len . $c_code . $mail_hex;
return $d_code;
}
/**
* 暗号化された値をuser_idとbanner_idとmail_idに複合化します。
* @param String $d_code 暗号化された文字列
* @retrun array (user_id, banner_id, mail_id, c_code)からなる配列
*/
public static function decode3($d_code) {
$mid_len = base_convert(substr($d_code, 0, 1), 16, 10);
$d_code = substr($d_code, 1);
$c_code = substr($d_code, 0, $mid_len);
$mail_hex = substr($d_code, $mid_len);
$return_arr = CcodeCryptor::decode($c_code);
$mail_id = base_convert($mail_hex, 16, 10);
array_push($return_arr, $mail_id);
array_push($return_arr, $c_code);
return $return_arr;
}
}
?>