Home > Article > Backend Development > PHP-simple symmetric encryption algorithm and conversion function between string and hexadecimal
/**
* Encryption using simple symmetric encryption algorithm
* @param String $string The string that needs to be encrypted
* @param String $skey Encryption EKY
* @return String
*/
function encode($string = '', $skey = 'textphp') {
$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));
}
/**
* Decryption of simple symmetric encryption algorithm
* @param String $string The string to be decrypted
* @param String $skey Decryption KEY
* @return String
*/
function decode($string = '', $skey = 'textphp') {
$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;
}
以上就介绍了php-简单对称加密算法和字符串与十六进制之间的互转函数,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。