php-简单对称加密算法和字符串与十六进制之间的互转函数

8/31/2015来源:PHP技巧人气:2413

php-简单对称加密算法和字符串与十六进制之间的互转函数

/** * 简单对称加密算法之加密 * @param String $string 需要加密的字串 * @param String $skey 加密EKY * @return String */function encode($string = '', $skey = 'testphp') {  $skey = str_split(base64_encode($skey));  $strArr = str_split(base64_encode($string));  $strCount = count($strArr);  foreach ($skey as $key => $value) {    $key < $strCount && $strArr[$key].=$value;  }  return str_replace('=', 'O0O0O', join('', $strArr));}

/** * 简单对称加密算法之解密 * @param String $string 需要解密的字串 * @param String $skey 解密KEY * @return String */function decode($string = '', $skey = 'testphp') {  $skey = str_split(base64_encode($skey));  $strArr = str_split(str_replace('O0O0O', '=', $string), 2);  $strCount = count($strArr);  foreach ($skey as $key => $value) {    $key < $strCount && $strArr[$key][1] === $value && $strArr[$key] = $strArr[$key][0];  }  return base64_decode(join('', $strArr));}

//字符串转换成16进制function str2hex($str, $encoded = 'GBK') {  $hex = '';  if ($encoded == 'GBK') {    $str = mb_convert_encoding($str, 'GBK', 'UTF-8');  }  for ($i = 0, $length = mb_strlen($str); $i < $length; $i++) {    $hex .= dechex(ord($str{$i}));  }  return $hex;}

//16进制转换成字符串function hex2str($hex, $encoded = 'GBK') {  $str = '';  $arr = str_split($hex, 2);  foreach ($arr as $bit) {    $str .= chr(hexdec($bit));  }  if ($encoded == 'GBK') {    $str = mb_convert_encoding($str, 'UTF-8', 'GBK');  }  return $str;}