为什么我md5得到的结果与别人不一样 #6
armingli
announced in
Programming
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
先列下不同语言,不同平台上针对
hello, world
字符串生成的md5值。Javascript Console(https://www.md5.cz/javascript-md5),这里使用的是页面上加载的这个md5库。
php
md5
函数Python
md5
函数golang
md5
函数osx
md5
工具Linux
md5sum
工具MySQL 内置
md5
函数从上面实验结果来看,在各种编程语言实现及MySQL内置的
md5
函数计算结果是相同的,OSX上md5 -s 'hello, world'
的计算结果也正常。而在OSX和Linux上通过管道和文件的方式得到了相同的结果,但是是另外一个结果。那为什么通过管道和文件的方式得到不一样的结果呢?
上二进制查看工具查看文件内容
通过观察发现有多出一个换行字符
0A
,我们写入的字符是hello, world
12个字符,并没有添加换行符。通过ls
也发现了文件大小不对。这里我们是通过
echo
把内容重定向到文件的,那最大可能就是echo
自动添加了换行符。查看
echo
文档,黑底白字写着,会添加换行符,如果不添加换行符,使用参数-n
或在字符串末尾添加\c
。验证后的确是这样子的。不带换行的文件得到的md5值也是我们所期望的了。
还是要熟练使用常用的命令行工具,对常用的参数要熟记于心呐。
Beta Was this translation helpful? Give feedback.
All reactions