@rudolph_senger
В PHP для зашифровки строки можно использовать различные алгоритмы шифрования. Наиболее распространенными являются шифр Цезаря, шифр Виженера, шифрование с использованием хэш-функций (например, MD5, SHA-1, SHA-256) и симметричное шифрование с использованием ключа (например, AES, DES).
Примеры кода для каждого из этих методов приведены ниже:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
function caesarCipher($str, $shift){ $result = ""; $length = strlen($str); for($i = 0; $i < $length; $i++){ if(ctype_alpha($str[$i])){ $ascii = ord(ctype_upper($str[$i]) ? 'A' : 'a'); $result .= chr(($ascii + $shift - $ascii) % 26 + $ascii); }else{ $result .= $str[$i]; } } return $result; } $str = "Hello World"; $shift = 3; $encryptedStr = caesarCipher($str, $shift); echo $encryptedStr; // output: Khoor Zruog |
1 2 3 |
$str = "Hello World"; $encryptedStr = md5($str); echo $encryptedStr; // output: 3e25960a79dbc69b674cd4ec67a72c62 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
function encrypt($str, $key){ $method = "AES-256-CBC"; $ivSize = openssl_cipher_iv_length($method); $iv = openssl_random_pseudo_bytes($ivSize); $encryptedStr = openssl_encrypt($str, $method, $key, OPENSSL_RAW_DATA, $iv); return base64_encode($iv.$encryptedStr); } function decrypt($encryptedStr, $key){ $method = "AES-256-CBC"; $ivSize = openssl_cipher_iv_length($method); $encryptedStr = base64_decode($encryptedStr); $iv = substr($encryptedStr, 0, $ivSize); $encryptedStr = substr($encryptedStr, $ivSize); return openssl_decrypt($encryptedStr, $method, $key, OPENSSL_RAW_DATA, $iv); } $str = "Hello World"; $key = "secret_key"; $encryptedStr = encrypt($str, $key); echo $encryptedStr; // output: +YGaZHFkyyx6xViMPAxhTcJOKFqXV/RHxUgJG77H7to= $decryptedStr = decrypt($encryptedStr, $key); echo $decryptedStr; // output: Hello World |
Вы можете выбрать подходящий метод шифрования на основе ваших требований к безопасности данных.