首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基本openssl加密脚本问题

基本openssl加密脚本问题
EN

Unix & Linux用户
提问于 2018-10-09 01:05:38
回答 1查看 780关注 0票数 2

目前,我正在通过一系列练习来提高bash脚本知识。

我正在做的练习如下:编写一个名为encrypt.sh的脚本,用于加密文件。以下是脚本的要求:

  1. 它必须使用openssl加密文件。
  2. 它必须以要加密的文件的名称作为参数。
  3. 当它加密一个文件时,它必须将加密的版本放入一个文件中,文件名相同,但附加了".enc“。
  4. 与其他用户一起在系统上运行必须是安全的。也就是说,它不能将任何密码作为命令行参数传递。
  5. 它必须从名为ENCRYPTION_KEY的环境变量中读取要使用的密码。
  6. 如果未设置该环境变量,则应提示用户输入密码并使用该密码。
  7. 如果没有提供参数,则应该显示错误,并使用退出代码2退出。
  8. 如果用户用--帮助开关调用脚本,它应该会显示一条消息。
  9. 它应该与名称中有空格的文件一起工作。

我觉得我现在的脚本已经满足了1-5,7-8的要求。然而,我对第6和第9条感到有些困惑。

任何反馈意见,我目前的工作,或解决方案,我的缺失的需求,将不胜感激。

提前谢谢你。

代码语言:javascript
复制
usage="Usage: Enter the name of the file you would like to encrypt as a parameter, eg. $0 words"
ENCRYPTION_KEY="1234"
export ENCRYPTION_KEY
openssl enc -e -aes256 -in "$1" -out "$1".enc -pass env:ENCRYPTION_KEY
if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
    echo $usage
fi

if test -z ${1}
    then
        echo "${0} :ERROR: No parameters provided. Please see -h or --help for usage." 1>&2
        exit 1
fi

#DECODE (script is not required to decode, just here for testing purposes)
#openssl enc -d -aes256 -in words.enc -out words.enc.dec -pass env:ENCRYPTION_KEY
EN

回答 1

Unix & Linux用户

发布于 2018-10-09 01:40:13

对于#6,这个read巴什积木将会很有帮助。对于#9,确保变量名在所有使用它们的地方都是双引号。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/474107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档