Open-ssl шифрует только строки, содержащие более 15 символов

Я использую open-ssl в проекте и хочу зашифровать имя и фамилию пользователей. Я обнаружил странное поведение open-ssl: шифруются только строки, содержащие более 15 символов. Это моя вина или что-то не задокументированное?

<?php

$cipher = 'aes-256-xts';
$privateKey = 'LOOK';
$stringToEncrypt = "Luisa 111 111 11";

$ivLength = openssl_cipher_iv_length($cipher);
$iv = openssl_random_pseudo_bytes($ivLength);

$encryptedData = openssl_encrypt($stringToEncrypt, $cipher, $privateKey, 0, $iv) . ":" . base64_encode($iv);

list($encryptedString, $iv) = explode(':', $encryptedData, 2);

$decryptedData = openssl_decrypt($encryptedString, $cipher, $privateKey, 0, base64_decode($iv));

Кто-нибудь знает решение моей проблемы?

Заранее спасибо!

Переключитесь на aes-256-cbc. Однако мне любопытно, что вы подразумеваете под 15+ шифрованием. Что произойдет, если в нем 14 символов? Шифрует, но не расшифровывает, или выдает незашифрованное значение, или делает ошибку, или ...

IncredibleHat 19.07.2018 19:13

Кроме того, убедитесь, что ваш закрытый ключ составляет 32 необработанных байта. Ни больше ни меньше.

IncredibleHat 19.07.2018 19:21

@IncredibleHat ... с aes-256-xts $ encryptedData содержит только iv, но, очевидно, ничего не зашифровывается, если незашифрованное значение содержит 15 или меньше символов. Никаких ошибок или уведомлений не выводится.

myyvee 20.07.2018 05:48

Благодаря @IncredibleHat - ключом к разгадке было изменение шифра на aes-256-cbc - теперь openssl_encrypt работает, как задумано. Я могу зашифровать данные даже одним символом!

myyvee 20.07.2018 05:51
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
4
58
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Решение: изменение шифра на aes-256-cbc позволяет шифровать строки только одним символом.

Другие вопросы по теме