2.编写一个函数实现字符串的加密和解密 用PHP
时间: 2024-10-23 07:05:32 浏览: 37
在PHP中,我们可以使用内置的`mcrypt`库或者更现代的`openssl`库来进行字符串的加密和解密。这里以简单的Caesar Cipher(凯撒密码)为例,这是一种替换式加密,通过将字母表中的每个字符向前或向后移动固定的位置来进行加密和解密。
```php
// 加密函数
function encrypt_string($plaintext, $shift) {
$encrypted_text = '';
$ascii_offset = ord('a');
// 将文本转换为小写字母并加密
for ($i = 0; $i < strlen($plaintext); $i++) {
if (ctype_alpha($plaintext[$i])) { // 检查是否为字母
$char_code = ord($plaintext[$i]) + $shift;
if ($char_code > ord('z')) { // 如果超过 'z'
$char_code -= 26; // 转回 'a' 开始位置
}
else if ($char_code < ord('a')) { // 如果小于 'a'
$char_code += 26; // 转回 'z' 后面
}
$encrypted_text .= chr($char_code + $ascii_offset);
} else {
$encrypted_text .= $plaintext[$i]; // 非字母字符保持不变
}
}
return $encrypted_text;
}
// 解密函数
function decrypt_string($ciphertext, $shift) {
return encrypt_string($ciphertext, -$shift); // 由于加密是按位移,解密则是反向位移
}
// 示例使用
$plaintext = "Hello, World!";
$shift = 3;
$ciphertext = encrypt_string($plaintext, $shift);
echo "Encrypted: " . $ciphertext . "\n";
$decrypted_text = decrypt_string($ciphertext, $shift);
echo "Decrypted: " . $decrypted_text . "\n";
阅读全文