Шаг 1: mkfifo /tmp/fifo
- это создает FIFO, имя файла, которое представляет канал.Все, что записано в канал, остается там до тех пор, пока процесс не прочитает его обратно из канала.Данные никогда не попадают на диск.
Шаг 2: В одном терминале запустите: openssl enc -aes-256-cbc -a -e -in fifo -out safe
- запускается программа OpenSSL для шифрования с использованием AES, 256-битный ключ, режим CBC (openssl поддерживает гораздо большетипы и параметры шифров, выберите тот, который вам подходит, это безопасное значение по умолчанию);-a
Base64 кодирует вывод (что хорошо для тестирования, но вы, вероятно, можете его отключить, когда вы действительно его используете, Base64 вызывает увеличение размера на 4/3);-e
работает в режиме шифрования, -in fifo
указывает, что входной файл имеет имя fifo
(возможно, используйте полный путь);-out safe
указывает, что выходной файл имеет имя safe
(опять же, возможно, используйте полный путь).OpenSSL будет находиться в спящем режиме до тех пор, пока данные не поступят в канал.
OpenSSL предложит вам ввести ключевую фразу, когда некоторые данные поступят в канал.
Проверьте это: запустите "echo foo> / tmp / fifo"в другом терминале.Посмотрите запрос пароля в первом терминале, введите пароль и подтвердите пароль, затем посмотрите на содержимое файла «safe»:
$ openssl enc -aes-256-cbc -a -e -in fifo -out safe
# (in another terminal, "echo foo > fifo")
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
$ cat safe
U2FsdGVkX18aWBw0Uz8N3SfrRg4PigL609F+HQPuc6o=
Проверьте другое направление:
$ openssl enc -aes-256-cbc -a -d -in safe
enter aes-256-cbc decryption password:
foo
Теперь повторно запустите команду OpenSSL, начиная с шага 2: openssl enc -aes-256-cbc -a -e -in fifo -out safe
, запустите ваш Matlab и передайте /tmp/fifo
команде SAVE()
.
Там равно aвероятность того, что Matlab сделает что-то глупое, например, удалит любой существующий файл с заданным именем файла, и в этом случае вы найдете незашифрованные данные в обычном файле с именем /tmp/fifo
.Поэтому, пожалуйста, сначала проверьте некоторые неважные данные.Но я надеюсь, что Matlab написан с учетом инструментов Unix и просто запишет в именованный канал, который вы ему дадите.