求助一个PHP加密解密 不区分大小写 的函数?-灵析社区

UX_siri

PHP语言: 比如字符串 $s = '2_中文'; 加密后得到的加密字符串,必须全部是小写, 不能有特殊符号。 主要是用于做 二级域名。 比如:xxx.abc.com 其中 xxx 就是 $s 加密后的字符串。 程序里面获取 HTTP_HOST,得到 xxx, 然后解密并得到 $s。 **下面这段是我在网上找的,不知道有没什么bug。** function encode32($str) { $BASE32_ALPHABET = 'abcdefghijklmnopqrstuvwxyz234567'; $output = ''; $v = 0; $vbits = 0; for ($i = 0, $j = strlen($str); $i = 5) { $vbits -= 5; $output .= $BASE32_ALPHABET[$v >> $vbits]; $v &= ((1 0) { $v = 'a' && $str[$i] = '2' && $str[$i] = 8){ $vbits -= 8; $output .= chr($v >> $vbits); $v &= ((1 << $vbits) - 1); } } return $output; } $s = '2_中文'; $jiami = encode32($s); $jiemi = decode32($jiami); echo '原始:'.$s.'---加密后:'.$jiami.'===解密后:'.$jiemi;

阅读量:219

点赞量:10

问AI
function custom_encrypt($string) { $string = mb_convert_encoding($string, 'UTF-8', 'auto'); $base64 = base64_encode($string); $url_safe = str_replace(['+', '/', '='], ['-', '_', ''], $base64); return strtolower($url_safe); } function custom_decrypt($string) { $base64 = str_replace(['-', '_'], ['+', '/'], $string); $padding = strlen($base64) % 4; if ($padding > 0) { $base64 .= str_repeat('=', 4 - $padding); } $result = base64_decode($base64); return mb_convert_encoding($result, 'UTF-8', 'auto'); } $s = '2_中文'; $encrypted = custom_encrypt($s); echo "加密后的字符串: $encrypted\n"; $decrypted = custom_decrypt($encrypted); echo "解密后的字符串: $decrypted\n";