У меня есть сервер REST (Gateway) PHP. Клиент является сервером node.js. Обмен данными между ними осуществляется зашифрованным (crypto_secretbox) & дешифрованным (crypto_secretbox_open) с использованием libsodium easy api реализаций PHP & Узел соответственно.различия между реализациями libsodium между PHP и Node.js
Зашифрованные данные в PHP не имеют 16-байтовых нулей в начале (соль), где, поскольку зашифрованные данные в node.js имеют 16-байтовые нули.
Чтобы расшифровать на узле данные, зашифрованные в PHP, перед тем, как вызвать secretBox.decrypt, я должен предварительно добавить 16 байт нулей (соли).
Чтобы расшифровать на PHP данные, зашифрованные в узле, я должен сначала удалить 16 байт нулей перед вызовом \ Sodium \ crypto_secretbox_open.
Вопрос: Является ли это наилучшим возможным подходом или мне не хватает чего-то очень очевидного?
Непонятно, каков ваш вопрос. Вы ясно нашли решение различий в обеих реализациях? – shrmn
Привет. Я сделал, но я чувствую, что это взломать. Я надеюсь, что кто-то скажет мне, что «так вы делаете это, вы рубите!» :) – indiangolfer