当前位置:首页 > PHP

凯撒密码在php中实现

2026-01-29 07:14:27PHP

凯撒密码简介

凯撒密码是一种替换加密技术,通过将字母表中的每个字母移动固定位数(密钥)实现加密。例如密钥为3时,"A"加密为"D","Z"加密为"C"(循环移位)。

PHP实现凯撒加密

以下代码实现字母的凯撒加密,支持大小写字母,忽略非字母字符:

function caesarEncrypt($text, $shift) {
    $result = "";
    $length = strlen($text);
    for ($i = 0; $i < $length; $i++) {
        $char = $text[$i];
        if (ctype_upper($char)) {
            $result .= chr((ord($char) + $shift - 65) % 26 + 65);
        } elseif (ctype_lower($char)) {
            $result .= chr((ord($char) + $shift - 97) % 26 + 97);
        } else {
            $result .= $char; // 非字母字符原样输出
        }
    }
    return $result;
}

参数说明

  • $text: 待加密的字符串
  • $shift: 移位值(密钥)
    示例调用
    echo caesarEncrypt("Hello, World!", 3); // 输出 "Khoor, Zruog!"

PHP实现凯撒解密

解密只需将移位值取反:

function caesarDecrypt($text, $shift) {
    return caesarEncrypt($text, 26 - $shift); // 利用26字母循环特性
}

示例调用

echo caesarDecrypt("Khoor, Zruog!", 3); // 输出 "Hello, World!"

注意事项

  1. 仅支持字母:数字和符号不会被加密。
  2. 密钥范围:移位值建议在0-25之间,超出时会自动取模(如27 % 26 = 1)。
  3. 安全性:凯撒密码易受暴力破解,仅适用于教学或简单场景。

扩展:处理Unicode字符

若需支持多语言字符(如中文),需改用mb_*函数处理:

凯撒密码在php中实现

function unicodeCaesar($text, $shift) {
    $result = "";
    $chars = preg_split('//u', $text, -1, PREG_SPLIT_NO_EMPTY);
    foreach ($chars as $char) {
        $code = mb_ord($char);
        if ($code >= 0x4E00 && $code <= 0x9FA5) { // 中文Unicode范围示例
            $result .= mb_chr(($code - 0x4E00 + $shift) % 20902 + 0x4E00);
        } else {
            $result .= $char;
        }
    }
    return $result;
}

需自定义mb_ordmb_chr函数(参考PHP文档)。

标签: 凯撒密码
分享给朋友:

相关文章

react如何保存密码

react如何保存密码

保存密码的安全实践 在React应用中保存密码需要遵循安全最佳实践,避免明文存储或不当处理。以下是几种推荐方法: 使用环境变量 敏感信息如API密钥或数据库密码应存储在环境变量中,而非代码中。创建.…

react实现密码显示隐藏

react实现密码显示隐藏

使用状态管理控制密码显示/隐藏 在React中,可以通过useState钩子管理密码输入框的显示状态。定义一个布尔类型的状态变量(如showPassword),用于切换密码的明文/密文显示。 imp…

react实现密码隐藏功能

react实现密码隐藏功能

实现密码隐藏功能的方法 在React中实现密码隐藏功能通常涉及使用input元素的type属性切换(password和text),并结合状态管理控制显示/隐藏状态。以下是具体实现方式: 使用…

记住密码 php实现

记住密码 php实现

实现记住密码功能的方法 在PHP中实现记住密码功能通常通过Cookie或Session结合数据库验证完成。以下是两种常见实现方式: 基于Cookie的实现 设置长期有效的Cookie存储用户登录凭…

php记住密码怎么实现

php记住密码怎么实现

使用Cookie存储登录信息 在PHP中,可以通过设置Cookie来存储用户的登录信息。当用户勾选“记住密码”选项时,将用户名和加密后的密码存储在Cookie中。加密可以使用password_hash…

凯撒密码在php中实现

凯撒密码在php中实现

凯撒密码简介 凯撒密码是一种替换加密技术,通过将字母表中的每个字母移动固定的位数(密钥)实现加密。例如密钥为3时,"A"加密为"D","Z"加密为"C"(循环移位)。 PHP实现凯撒加密 以…