gpt4 book ai didi

Bash 脚本 openssl 加密,md5 传递问题

转载 作者:行者123 更新时间:2023-12-04 05:33:32 24 4
gpt4 key购买 nike

我正在尝试创建一个用于加密文件的脚本方法,我试图让它执行以下操作:

对我们正在加密的文件进行 MD5 校验和,仅去除 MD5 值并将其放入一个变量中,

向用户询问密码,(希望我可以使用 openssl 输入法输入密码,而不必使用来自 bash 的输入,如果它打印到终端似乎不太安全)但我不知道如何去做,有没有一种有效的安全方式来做到这一点?

无论如何,使用该密码,添加 # 然后添加 md5 总和,即:passhere#md5sumoforiginalfile

在完美的世界中,它会首先 tar.gz 文件并针对压缩存档执行加密。

这就是我有点难住的地方,我在打印 md5 并将 md5 哈希值合并到密码中时遇到问题,也不觉得按原样输入是正确的,有没有更好的方法来做到这一点?

提前谢谢大家!

这是函数(最初由作者从网络上的另一个脚本中抓取:Matt Reid)

function encrypt() {
filein="$1"
fileout="$2"

if [ "$filein" = "no" ]; then
echo -n "No input file specified, what file are we encrypting: "
read filein
fi

if [ -r "$filein" ]; then
if [ "$fileout" = "no" ]; then
fileout="$filein.aes256"
fi
if [ -f "$fileout" ]; then
echo "Output file exists already, encrypting will overwrite this file."
echo -n "Do you want to encrypt anyway? [Y/n]: "
read choice
if [ "$choice" = "Y" ] || [ "$choice" = "y" ] || [ "$choice" = "" ]; then
openssl enc -aes-256-cbc -a -salt -in $filein -out $fileout
generate_digests $filein $fileout
sdelete $filein
exit 0;
else
exit 2;
fi
else
filemd5=$(openssl dgst -md5 $filein | cut -d ' ' -f 1)
echo "Please enter password: "
read passvar
openssl enc -aes-256-cbc -a -salt -out $fileout -k ${passvar}#${filemd5}
generate_digests $filein $fileout
sdelete $filein
exit 0;
fi
else
echo "Input file does not exist or is not readable. You're attempting to encrypt file: '$filein'"
exit 1;
fi
}

编辑:好的,我能够让它工作(减去 tar 部分),但我的问题仍然存在,有没有办法改变它,这样我就可以使用 openssl enc 的隐藏输入作为密码,以及如何修改输入的密码通过附加 #md5sumhere ?不太确定如何去做。

再次感谢。

最佳答案

我会使用散列密码而不是明文密码:

salt="astringtobeusedassalt"
hashedpassword=`openssl passwd -salt $salt`
echo $hashedpassword
finalpassword="$hashedpassword""#""$filemd5" # $filemd5 variable from your script

作为旁注:请使用 sha1或更高时计算摘要( sha256 更可取)

关于Bash 脚本 openssl 加密,md5 传递问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12277201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com