当前位置: 首页 > 知识库问答 >
问题:

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

陆昊
2023-09-18

PHP语言:

比如字符串
$s = '2_中文';

加密后得到的加密字符串,必须全部是小写, 不能有特殊符号。

主要是用于做 二级域名。

比如:xxx.abc.com
其中 xxx 就是 $s 加密后的字符串。

程序里面获取 HTTP_HOST,得到 xxx,
然后解密并得到 $s。

共有2个答案

云骏奇
2023-09-18
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";
鄢禄
2023-09-18

很抱歉,我无法直接提供一个具体的加密解密函数。然而,我可以给您一些建议和思路,帮助您实现这个功能。

首先,您可以使用PHP内置的函数mb_convert_case()将字符串转换为小写,并且去除特殊符号。以下是一个示例代码:

$s = '2_中文';$s = mb_convert_case($s, MB_CASE_LOWER); // 将字符串转换为小写$s = str_replace('-', '', $s); // 去除特殊符号

接下来,您可以使用mb_substr()函数从HTTP_HOST中提取出二级域名部分。以下是一个示例代码:

$httpHost = $_SERVER['HTTP_HOST'];$s = mb_substr($httpHost, -strlen($s)); // 提取二级域名部分

最后,您可以使用mb_convert_case()函数将解密后的字符串转换为大写,以便与HTTP_HOST中的二级域名部分匹配。以下是一个示例代码:

$s = mb_convert_case($s, MB_CASE_UPPER); // 将字符串转换为大写

请注意,上述代码中的$_SERVER['HTTP_HOST']是一个PHP全局变量,它包含了当前请求的完整主机名。如果您在特定的环境或框架中工作,可能需要使用不同的变量或方法来获取HTTP_HOST。

 类似资料:
  • 用途:主要用于URL的参数加密! 比如动态URL:xx.com/index.php?cid=1&id=2.html 实现成:xx.com/index.php?pwd=A1B2c3.html 把 cid=1&id=2 进行加密! 要求: 1、加密后的长度尽量短,openssl_decrypt 这个加密后的太长了! 2、加密后的密文要求不区分大小写, A1B2c3和 a1b2c3 都可以,也就是URL

  • 本文向大家介绍一组PHP加密解密函数分享,包括了一组PHP加密解密函数分享的使用技巧和注意事项,需要的朋友参考一下

  • 问题内容: 使用该函数时是否可以进行不区分大小写的比较? 因此,使用这样的源数组: 以下查找将全部返回true: 哪些功能或一组功能可以做到相同?我认为本身无法做到这一点。 问题答案: 您可以使用:

  • 本文向大家介绍php写的AES加密解密类分享,包括了php写的AES加密解密类分享的使用技巧和注意事项,需要的朋友参考一下 今天写了一个php的AES加密类。适用于Yii的扩展。 如果不用在Yii框架中,把代码中Yii::app()->params['encryptKey'] 换成你对应的默认key就可以了。 类代码:

  • 本文向大家介绍PHP加密解密函数详解,包括了PHP加密解密函数详解的使用技巧和注意事项,需要的朋友参考一下 分享一个PHP加密解密的函数,此函数实现了对部分变量值的加密的功能。 加密代码如下: 解密代码如下: 辅助函数: 使用如下所示: 以上就是为大家分享的php加密解密函数,希望大家喜欢,可以应用到自己的学习中。

  • 问题内容: 我正在研究一些代码,并找到了对的调用。PHP对函数名称是否区分大小写?我记得在某处读过这篇文章,但似乎找不到任何参考。 问题答案: 我在此引用: 注意:函数名称不区分大小写,尽管调用函数通常是一种很好的形式,因为它们出现在声明中。 因此,它看起来像用户定义的函数是不区分大小写,有一个投票下PHP5区分大小写制作功能/对象。