Я использую метод AES 256 cb c для шифрования моих файлов. Столбец, который я шифрую, называется «Имя». Ранее перед шифрованием я установил длину varchar в phpmyadmin для «Name» равной 20. Когда я пытался зашифровать, я увидел, что она короткая и вся зашифрованная строка не вставляется в базу данных. Поэтому я изменил размер varchar на 50, но длина все еще мала. Я должен сделать это и для другой колонки. Как определить эффективную длину для столбца «Имя».
Я использую рандомизированный IV в шифровании, как видно из приведенного ниже примера.
$encryptionMethod = "AES-256-CBC";
$secretHash = "25c6c7ff35b9979b151f2136cd13b0ff";
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length($encryptionMethod));
//To encrypt
$encrypted = openssl_encrypt($textToEncrypt, $encryptionMethod, $secretHash,false,$iv);
$encryptedMessage = $encrypted . ':' .base64_encode($iv);
во время расшифровки я использую
$parts = explode(':', $encryptedMessage);
// Decrypt the data
$decryptedMessage = openssl_decrypt($parts[0], $encryptionMethod, $secretHash, 0, base64_decode($parts[1]));
echo $decryptedMessage;
, так как IV добавляется в зашифрованную строку, как я смогу рассчитать длину, которая должна быть определена в базе данных для столбца «Имя».