linux如何获取终端字符串,如何直接在终端中获取字符串的MD5哈希值?

问题描述

如何直接从终端获取字符串的MD5散列?

例如,我想要字符串abcdefg散列。目前md5sum命令只接受文件名作为输入。我想简单地输入下面的行,一切都完成了。

md5sum abcdefg

output: ac54bcf346e578feb46888b3ecd2344f

我怎样才能做到这一点?

最佳解决方法

你也可以这样说:

~$ echo -n Welcome | md5sum

83218ac34c1834c26781fe4bde918ee4 -

它基本上和@enzotib描述的一样,但可能更简单一些。

次佳解决方法

非常简单,它接受stdin,所以

md5sum <<

为了避免shell添加的尾随换行符:

printf '%s' "my string" | md5sum

第三种解决方法

$ echo -n 123456 | md5sum | awk '{print $1}'

e10adc3949ba59abbe56e057f20f883e

你可以创建一个shell脚本。

例如,脚本名称是md5.sh:

#!/bin/bash

echo -n $1 | md5sum | awk '{print $1}'

许可执行:

chmod +x md5.sh

然后:

$ md5.sh 123456

e10adc3949ba59abbe56e057f20f883e

如果你的系统是macOS。你需要修改这个脚本:

$ echo -n 123456 | md5 | awk '{print $1}'

e10adc3949ba59abbe56e057f20f883e

第四种方法

运行没有参数的md5sum将导致它从终端读取输入。输入或粘贴任何你想要的,当你完成后,按ctrl-d结束输入。

第五种方法

我在md5sum的--help上快速地发现,命令:

md5sum -

然后会提示输入简单信息。输入一些文本,然后使用Enter,然后使用Ctrl + D表示文件结束,然后使md5sum输出您输入的原始文本的MD5。

少打字,没有管道!呜!

如果在Ctrl + D之前没有击中Enter,则必须输入两次Ctrl + D,其结果是错误的hash-sum。

第六种方法

openssl md5 filename

openssl sha1 filename

对于使用echo的字符串管道内容

echo -n 123456 | openssl md5

第七种方法

在我的脚本中,我发现有两件事你应该知道这个问题。

不管你做echo "$myvariable"或echo -n "$myvariable",但是你应该总是使用字符串的doubleqoutes并且总是使用相同的方法。如果不是,事情就不会匹配。

在输出中你总会得到一个尾部空格和一个破折号,如下例所示:

$ echo -n Welcome | md5sum

7803ffcaea43bb81a439fde13b29bc35 -

摆脱这一点,只留下代码7803ffcaea43bb81a439fde13b29bc35,做:echo "$myvariable" | md5sum | cut -d" " -f1

参考资料

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值