Bash: 生成带有特殊字符的字符串的 md5 散列

Bash: Generate md5 hash of string with special characters

我想创建一个 bash 脚本来创建字符串的 md5 哈希。 但是字符串可以包含特殊字符和 spaces。我怎样才能知道这样的字符串对于 eg 是可读的。 md5sum?

我写了下面的脚本 "md5.sh":

#!/bin/bash
echo -n  | md5sum | awk '{print }'

但是,如果我使用“./md5.sh”(末尾带有 space),则无法识别。 也无法从脚本中读取引用。单个 " 将以提示结束...

希望有人能帮助我:)

首先,你需要在脚本中引用参数(并使用printf;如果人们忘记了echo的存在,世界会更美好):

printf '%s' "" | md5sum | awk '{print }'

其次,要传递一个实际的 space 作为参数,它也必须被引用,这样 shell 就不会丢弃它:

./md5.sh " "