2ha*_*med 234 command-line md5sum
如何直接从终端获取字符串的MD5哈希值?
例如,我想要abcdefg散列字符串。目前md5sum命令只接受文件名作为输入。我只想输入以下行并完成所有操作。
md5sum abcdefg
output: ac54bcf346e578feb46888b3ecd2344f
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
jfm*_*ier 318
你也可以这样说:
~$ echo -n Welcome | md5sum
83218ac34c1834c26781fe4bde918ee4 -
Run Code Online (Sandbox Code Playgroud)
它基本上做与@enzotib 描述的相同的事情,但可能更简单一些。
enz*_*tib 72
很简单,它接受标准输入,所以
md5sum <<<"my string"
Run Code Online (Sandbox Code Playgroud)
为避免 shell 添加的尾随换行符:
printf '%s' "my string" | md5sum
Run Code Online (Sandbox Code Playgroud)
ty4*_*008 36
$ echo -n 123456 | md5sum | awk '{print $1}'
e10adc3949ba59abbe56e057f20f883e
Run Code Online (Sandbox Code Playgroud)
你可以创建一个shell脚本。
例如,脚本名称为 md5.sh:
#!/bin/bash
echo -n $1 | md5sum | awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)
权限执行:
chmod +x md5.sh
Run Code Online (Sandbox Code Playgroud)
然后:
$ md5.sh 123456
e10adc3949ba59abbe56e057f20f883e
Run Code Online (Sandbox Code Playgroud)
如果您的系统是 macOS。您需要修改此脚本:
$ echo -n 123456 | md5 | awk '{print $1}'
e10adc3949ba59abbe56e057f20f883e
Run Code Online (Sandbox Code Playgroud)
小智 13
openssl md5 filename
openssl sha1 filename
Run Code Online (Sandbox Code Playgroud)
对于字符串管道使用 echo 的内容
echo -n 123456 | openssl md5
Run Code Online (Sandbox Code Playgroud)
psu*_*usi 10
完全不带参数运行 md5sum 将导致它从终端读取输入。输入或粘贴您想要的任何内容,完成后,按ctrl-d结束输入。
小智 5
我对--helpfor 的快速查看md5sum表明该命令:
md5sum -
Run Code Online (Sandbox Code Playgroud)
然后会提示进行简单的输入。输入一些文本,然后使用Enter然后Ctrl+D来表示文件结束,然后会导致md5sum吐出您输入的原始文本的 MD5(包括那个Enter,它是一个 CR,IIRC)。
少打字,没有管道!并避免您的明文密码被记录在 shell 历史中!哇!
如果您不想要那个尾随 CR(如果您想对密码进行哈希处理,通常就是这种情况),请不要Enter在Ctrl+之前点击D,而是输入Ctrl+D两次。
有很多示例可以执行此操作,但其中一些示例并不等效,因为其中一些显式或隐式包含换行符,而另一些则不包含换行符。
我想明确指定哪些流行方法包含换行符,哪些不包含换行符。
以下是一些计算md5哈希值(不带尾随换行符)的示例(正确):
使用带有文本的文件:
$ echo -n "test" > test.txt
$ wc test.txt
0 1 4 test.txt
$ md5sum test.txt
098f6bcd4621d373cade4e832627b4f6 test.txt
Run Code Online (Sandbox Code Playgroud)
注意: -n in 的echo意思是:“不输出尾随换行符”。
echo与内联一起使用-n:
$ echo -n "test" | md5sum
098f6bcd4621d373cade4e832627b4f6 -
Run Code Online (Sandbox Code Playgroud)
使用printf:
$ printf "%s" "test" | md5sum
098f6bcd4621d373cade4e832627b4f6 -
Run Code Online (Sandbox Code Playgroud)
仅使用md5sum命令:
(我们来写md5sum,按Enter然后写字符串test,然后按双组合Ctrl+ d)
$ md5sum
test098f6bcd4621d373cade4e832627b4f6 -
Run Code Online (Sandbox Code Playgroud)
使用md5sum -命令:
(我们来写md5sum -,按Enter然后写字符串test,然后按双组合Ctrl+ d)
$ md5sum -
test098f6bcd4621d373cade4e832627b4f6 -
Run Code Online (Sandbox Code Playgroud)
以下是一些计算带有尾随换行符的md5哈希值的示例(所以不正确):
使用带有文本的文件:
$ echo "test" > test_n.txt
$ wc test_n.txt
1 1 5 test_n.txt
$ md5sum test_n.txt
d8e8fca2dc0f896fd7cb4cb0031ba249 test_n.txt
Run Code Online (Sandbox Code Playgroud)
使用echo不-n内联:
echo "test" | md5sum
d8e8fca2dc0f896fd7cb4cb0031ba249 -
Run Code Online (Sandbox Code Playgroud)
此处使用字符串:
$ md5sum <<< "test"
d8e8fca2dc0f896fd7cb4cb0031ba249 -
Run Code Online (Sandbox Code Playgroud)
仅使用md5sum命令但Enter在写入文本后使用按键:
(让我们写md5sum,按Enter然后写字符串test,然后再按Enter一次组合Ctrl+ d)
$ md5sum
test
d8e8fca2dc0f896fd7cb4cb0031ba249 -
Run Code Online (Sandbox Code Playgroud)
使用md5sum -命令但Enter在写入文本后使用按键:
(让我们写md5sum -,按Enter然后写字符串test,然后再按Enter一次组合Ctrl+ d)
$ md5sum -
test
d8e8fca2dc0f896fd7cb4cb0031ba249 -
Run Code Online (Sandbox Code Playgroud)