当前位置:首页 > PHP

凯撒密码在php中实现

2026-02-14 05:22:38PHP

凯撒密码简介

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

PHP实现凯撒加密

以下代码实现字符串的凯撒加密,支持大小写字母保留,非字母字符原样输出:

function caesarEncrypt($text, $shift) {
    $result = "";
    for ($i = 0; $i < strlen($text); $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;
}

PHP实现凯撒解密

解密函数只需将位移参数取反:

凯撒密码在php中实现

function caesarDecrypt($text, $shift) {
    return caesarEncrypt($text, 26 - $shift);
}

使用示例

$original = "Hello, World!";
$shift = 3;
$encrypted = caesarEncrypt($original, $shift);
$decrypted = caesarDecrypt($encrypted, $shift);

echo "Original: $original\n";
echo "Encrypted: $encrypted\n";  // 输出 "Khoor, Zruog!"
echo "Decrypted: $decrypted\n";  // 恢复原字符串

注意事项

  • 位移值应介于0-25之间,超出范围会自动取模
  • 仅处理A-Z/a-z字母,其他字符(数字、标点等)保持原样
  • 如需扩展符号集,需修改ASCII码范围判断逻辑

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

相关文章

vue实现改密码

vue实现改密码

实现步骤 表单设计与数据绑定 在Vue组件中创建密码修改表单,包含旧密码、新密码、确认密码字段,使用v-model双向绑定数据。示例代码: <template> <form @…

react如何保存密码

react如何保存密码

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

记住密码 php实现

记住密码 php实现

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

js实现密码输入后校验

js实现密码输入后校验

密码校验实现方法 在JavaScript中实现密码输入校验可以通过多种方式完成,以下是几种常见的实现方法: 正则表达式校验 使用正则表达式可以快速验证密码复杂度要求。例如要求密码包含大小写字母、数字…

uniapp蓝牙密码

uniapp蓝牙密码

关于UniApp蓝牙密码的使用 在UniApp中开发蓝牙功能时,涉及密码或配对码的场景通常出现在蓝牙设备连接阶段。以下是关键信息整理: 蓝牙配对流程 UniApp通过uni.connectBluet…

vue实现密码

vue实现密码

Vue 实现密码功能的方法 在 Vue 中实现密码功能通常涉及密码输入框的创建、密码显示/隐藏切换以及基本的验证逻辑。以下是几种常见的实现方式: 密码输入框的基本实现 使用 Vue 的 v-mode…