我试图在某些Java代码中复制sha1sum可执行文件的行为,但是,在此过程中,我发现在两种情况下,给定相同的输入,sha1sum的行为似乎有所不同。
假设输入的“ 12345”不带单引号且不带换行符。
如果我将这些数据放入文件(file1)并从命令行运行sha1sum:
$ sha1sum file1
8cb2237d0679ca88db6464eac60da96345513964 file1
但是,如果执行此操作,则会得到不同的结果:
$ cat file1 | grep -vi foo | grep -vi bar | sha1sum
2672275fe0c456fb671e4f417fb2f9892c7573ba -
使用apache commons编解码器jar,我可以读取file1,获取它的内容,然后对内容执行.shahex()并获取第一个结果。但是,由于遗留代码,我需要获取第二个结果,并且我无法弄清楚为什么sha1sum的行为不同,或者grep对输入做了什么。
系统正在运行带有sha1sum 5.97的CentOS 5.4
有指针吗?
grep
添加换行符。
$ hd file1
00000000 31 32 33 34 35 |12345|
00000005
$ grep -vi test <file1 | hd
00000000 31 32 33 34 35 0a |12345.|
00000006
为了获得相同的结果,您应该\n
在输入末尾添加一个(如果不存在)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句