我正在加密openssl中的json字符串。当它打印出来时,我得到了多线路输出,我需要它在单行中,用于CLI中的存储和可用性。
运行命令:echo '{"foo":"this is fun","bar":"this is also fun","numbers":123456}' | openssl enc -aes-256-cbc -a
通过:pass
获取:
U2FsdGVkX1+u90MyWMyFtrrlzFSLcuNk00Ax5XLJhzSMpuUNxwdZQgdkxSmT3KEP
LMGz5I2imE9RP0BvMAPnUq0we98bprtxAnZMHLSntfl2tRSqoyMDvW6P3+Vkr2jZ
解密我运行:echo "U2FsdGVkX1+u90MyWMyFtrrlzFSLcuNk00Ax5XLJhzSMpuUNxwdZQgdkxSmT3KEP
LMGz5I2imE9RP0BvMAPnUq0we98bprtxAnZMHLSntfl2tRSqoyMDvW6P3+Vkr2jZ" | openssl enc -aes-256-cbc -d -a
但是这个命令不适用于多行,如果我把文件放到文件中,而cat文件就可以了,它可以工作,但是我需要在数据库中存储为字符串,不带多行并且能够在CLI中运行decrypt命令。
是否有人知道如何使用aes进行加密,或者在CLI中使用aes加密并能够获得单行输出?
答案 0 :(得分:5)
您只需将OpenSSL中的-A
开关与-a
开关一起使用即可生成一条线。您可以对加密和解密执行此操作。