<?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; } } ?>