2014-10-06 148 views
1

嘗試在Linux上正確地散列字符串時遇到以下問題。md5sum當字符串中有 n個字符時出現問題

我使用Linux的shell命令如下過程:

echo -n "THIS IS A TEST" | md5sum 

,它是產生正確的MD5值(1586CFFAFA39E38959477DA9EAA41C31

但我無法弄清楚如何得到正確的MD5值的字符串:THIS IS\n A TEST

我試過類似:

echo -n "THIS IS\n A TEST" | md5sum 

給出了錯誤的md5值,而不是正確的應該是:180FB5A20D21A215AF9D1F89251B3614

+1

取決於哪個'echo'你使用,你可能需要使用'-e'。 'echo -n「這是\ n一個測試」'打印一個真正的換行符? – Biffen 2014-10-06 07:43:32

回答

1

您應該使用echo -e(使用Bash)使其理解轉義碼。

例如: echo -en「這是\ n一個測試」| MD5SUM

這會給你該字符串的正確哈希(這是):7a04591799701f311f30755bf53f90d1

+0

請注意,OP不同意正確的值! – 2014-10-06 08:01:08

+0

@ chiastic-security我已經看到了,但我一直在python中進行測試,並且他給出的值是「這是\ n一個測試」,帶有*轉義* \ n(字面反斜槓,然後是'n') ......這很奇怪。 – blue112 2014-10-06 15:44:06