凯撒密码在php中实现
凯撒密码简介
凯撒密码是一种替换加密技术,通过将字母表中的每个字母移动固定的位数(密钥)实现加密。例如密钥为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实现凯撒解密
解密函数只需将位移参数取反:
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码范围判断逻辑






