本文展示一個基於 ASCII 碼位移的簡單可逆加密算法,適合理解加密原理、輕量級混淆場景,不適合安全敏感數據。
ord())。+20-75chr())輸出。function simpleEncrypt($val) {
$result = '';
for ($i = 0; $i < strlen($val); $i++) {
$c = ord($val[$i]);
if ($c > 31 && $c < 107) {
$c += 20;
} elseif ($c > 106 && $c < 127) {
$c -= 75;
}
$result .= chr($c);
}
return $result;
}
// 解密為逆運算
function simpleDecrypt($val) {
$result = '';
for ($i = 0; $i < strlen($val); $i++) {
$c = ord($val[$i]);
if ($c > 51 && $c < 127) { // 加密後範圍
$c -= 20;
} elseif ($c >= 32 && $c <= 51) {
$c += 75;
}
$result .= chr($c);
}
return $result;
}
openssl_encrypt() (AES-256-GCM)。openssl_public_encrypt() / openssl_private_decrypt() (RSA)。password_hash() + password_verify() (bcrypt/argon2)。firebase/php-jwt 庫實現無狀態認證。理解經典算法原理是進階現代密碼學的基石,但請在正確場景使用正確工具。