我正在尝试创建一个函数,在其中传递 2 个变量。首先是要进行哈希处理的字符串,然后是指定哈希类型的变量,md5
或sha1
。这是我创建的函数:
hashedWord () {
echo $1 > pw.txt && $2 pw.txt | cut -d ' ' -f 1
} > Desktop/hashedWord.txt
它的运行方式如下:
hashedWord aStringToHash, md5sum
其中aStringToHash
是$1
变量,而md5sum
(散列变量) 是$2
。
答案1
您有几个问题:
echo
容易出错;尤其是对于你无法控制的字符串更好地利用printf
。- 你的变量没有被引用。-->
printf '%s' "$1"
- 您将密码以明文形式保存到文件中。为什么???您应该直接将密码传送到哈希算法,否则您将暴露密码。
- 如果你这样做,你不需要
echo
或者printf
根本不需要,你可以使用此处字符串--><<< "$1"
- 如果您愿意,您也可以使用
tee file
它来> file
在屏幕上查看输出。 Desktop/hashedWord.txt
是相对路径。如果您不在 中~
,这可能会引发错误。请使用绝对路径,例如~/Desktop/hashedWord.txt
。
--->
hashedWord() {
"$2" <<< "$1" | cut -d ' ' -f1 | tee ~/Desktop/hashedWord.txt
}