Я зашифровываю документы перед их добавлением в медиатеку следующим образом:
Storage::put($documentUploaded->disk . '/' . $documentUploaded->id . '/' . $documentUploaded->file_name, Crypt::encrypt(file_get_contents($documentUploaded->getPath())));
После проверки содержимого файла он однозначно зашифрован.
Затем, когда я получаю документы, я пытаюсь расшифровать их, чтобы они могли быть отправлены клиенту в ответ:
$encryptedContents = Storage::get($taskMedia->disk . '/' . $taskMedia->id . '/' . $taskMedia->file_name);
$decryptedContents = Crypt::decrypt($encryptedContents);
Но я продолжаю получать следующую ошибку:
local.ERROR: полезная нагрузка недействительна.
Полная трассировка стека:
[2018-05-17 16:47:19] local.ERROR: The payload is invalid. {"userId":1,"email":"admin@example.com","exception":"[object] (Illuminate\\Contracts\\Encryption\\DecryptException(code: 0): The payload is invalid. at C:\\wamp\\www\\astrid-api-post-mvp\\vendor\\laravel\\framework\\src\\Illuminate\\Encryption\\Encrypter.php:191)
[stacktrace]on\\Encrypter->decrypt('{\"iv\":\"1rSma+x8...')
#2 C:\\wamp\\www\\astrid-api-post-mvp\\app\\Services\\CompanyService.php(243): Illuminate\\Support\\Facades\\Facade::__callStatic('decrypt', Array)
#3 [internal function]: App\\Services\\CompanyService->App\\Services\\{closure}(Object(Spatie\\MediaLibrary\\Models\\Media), 0)
#4 C:\\wamp\\www\\astrid-api-post-mvp\\vendor\\laravel\\framework\\src\\Illuminate\\Support\\Collection.php(932): array_map(Object(Closure), Array, Array)
#5 C:\\wamp\\www\\astrid-api-post-mvp\\vendor\\laravel\\framework\\src\\Illuminate\\Database\\Eloquent\\Collection.php(164): Illuminate\\Support\\Collection->map(Object(Closure))
#6 C:\\wamp\\www\\astrid-api-post-mvp\\vendor\\laravel\\framework\\src\\Illuminate\\Support\\Collection.php(1600): Illuminate\\Database\\Eloquent\\Collection->map(Object(Closure))
#7 C:\\wamp\\www\\astrid-api-post-mvp\\app\\Services\\CompanyService.php(246): Illuminate\\Support\\Collection->transform(Object(Closure))
#8 C:\\wamp\\www\\astrid-api-post-mvp\\app\\Http\\Controllers\\Api\\CompaniesController.php(123): App\\Services\\CompanyService->documents()
#9 [internal function]: App\\Http\\Controllers\\Api\\CompaniesController->documents()
Это просто не нравится decrypt
часть.
Что я здесь не так делаю?
Задача ещё не решена.
Других решений пока нет …