Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Есть ли способ безопасно отправить строку из Elixir в PHP? (без SSL)

Автор вопроса: hykwОтветов: 1

Я хочу безопасно отправить строку из Elixir/Phoenix(Sever) в PHP(клиент) через строку запроса URL (например: ?secure_string=xxxxx). В средах нет SSL, но они могут заранее использовать закрытый ключ. Поэтому я подумал, что смогу безопасно передать строку с помощью шифрования, такого как AES.

Поскольку PHP имеет openssl_decrypt(), он может расшифровать строку, как показано ниже. Elixir (или Erlang?) может вызывать openssl_encrypt, кроме System.cmd("/usr/bin/openssl")? Есть ли другие (лучшие) способы?

$key = 'private_key_string_shared_both';
$algorithm = 'AES-128-ECB'
$decrypt = openssl_decrypt($encrypt_string, $algorithm, $key);

phoenix-frameworkelixir

Ответы

Ответ 1 · рейтинг 3 · tkowal

Вы можете использовать :crypto приложение. Это приложение Erlang, способное шифровать и расшифровывать с использованием различных шифров.

:crypto.block_decrypt(:aes_ecb, key, data)

И ключ, и данные должны иметь количество байтов, кратное 16. Они могут быть либо двоичными "like this", либо iolists 'like this'. Рабочий пример:

iex(1)> key = List.duplicate(100, 16)
'dddddddddddddddd'
iex(2)> string = List.duplicate(101, 16)
'eeeeeeeeeeeeeeee'
:crypto.block_encrypt(:aes_ecb, key, string)
<<6, 190, 103, 115, 142, 170, 75, 103, 128, 93, 168, 196, 108, 253, 41, 27>>

Пример заполнения двоичных файлов в Erlang

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы