Как передать строку (не файл) к openssl?

awk

С GNU awk или mawk Вы могли сделать это как это:

awk -v RS='!\n' '!/shutdown/'

Вывод:

interface FastEthernet0/1
 ip address 10.16.0.1 255.255.255.224

Вы могли сделать соответствие более точным, если Вы только ищете завершение работы в третьей строке:

awk -v RS='!\n' -v FS='\n +' '$3 !~ /shutdown/'

sed

Можно, конечно, также использовать sed, но это более сложно.

Один подход является тем, который Вы запустили с, но собираете целую запись в пространстве хранения прежде, чем распечатать что-либо. Это работает с GNU sed:

sed -n '/^interface/,/^!/ H; 1b; /^!/ { z; x; s/^\n//g; /shutdown/!p }'
6
08.08.2014, 17:28
3 ответа

Используйте это:

user@host:~$ echo "my string to encrypt" | openssl aes-256-cbc -e -a -K 00000000000000000000000000000000 -iv 00000000000000000000000000000000
a7svR6j/uAz4kY9jvWbJaUR/d5QdH5ua/vztLN7u/FE=
user@host:~$ echo "a7svR6j/uAz4kY9jvWbJaUR/d5QdH5ua/vztLN7u/FE=" | openssl aes-256-cbc -d -a -K 00000000000000000000000000000000 -iv 00000000000000000000000000000000
my string to encrypt

Или вы можете использовать подстановку команд:

user@host:~$ openssl aes-256-cbc -a -K 00000000000000000000000000000000 -iv \
00000000000000000000000000000000 -in <(echo "my string to encrypt") -out encrypted.txt
11
27.01.2020, 20:22

как насчет

echo encrypt Me | openssl aes-256-cbc -a -K 00000000000000000000000000000000 -iv 00000000000000000000000000000000

Если вас беспокоит, что ps покажет простой текст «зашифруйте меня», тогда вам лучше работать с файлом, стараясь стереть их.

1
27.01.2020, 20:22

Введите многострочный ввод, используйте ctrl + d для завершения. e = 'e' очистит переменную env для конфиденциальности.

e=$(cat); echo "$e" | openssl enc -aes-256-cbc -e -a; e='e'
2
27.01.2020, 20:22

Теги

Похожие вопросы