У нас есть набор данных, которые были зашифрованы при установке PHP 7.1 с использованием Halite, и сервер недавно был обновлен до 7.2, который libsodium теперь является частью PHP.У нас есть наши файлы ключей (открытый и секретный), которые состоят из 200 символов (для демонстрации показан старый открытый открытый ключ теста ниже):
31400100d6c01eb5744a3b508b389a2b10e4b554f8f004f8a0afc78beb02f574bbf2d8017563a641bd508e6a3c132e3350bf1bd1bdf402115b2a628dd63cf5cf5dae1fedbe6e4bc2b5e58c372c3bd960fada57741ef204a9a19a767f126af653a60d5be0
Они были созданы с использованием следующего кода:
$encryptionKey = KeyFactory::generateEncryptionKey();
KeyFactory::save($encryptionKey, $keyPath . $keyPublic);
Мы использовали для шифрования / дешифрования следующим образом (конечно, никогда на одном сервере):
$webPublicKey = KeyFactory::loadEncryptionPublicKey($keyPath . $keyPublic);
$encrypted = Asymmetric::seal($string,$webPublicKey);
$webSecretKey = KeyFactory::loadEncryptionSecretKey($keyPath . $keySecret);
$decrypted = Asymmetric::unseal($encrypted,$webSecretKey);
Как мы используем эти ключи, сгенерированные в предыдущей версии libsodium / haliteрасшифровать наши существующие данные сейчас, когда мы находимся на PHP 7.2?Попытка использовать старые ключи в новых функциях sodium_
в PHP7.2 постоянно приводит к ошибкам относительно длины ключа.
Я ценю любые рекомендации, которые вы можете предоставить.
Спасибо!