利用golang和shell計算一個字符串的md5值
需求:
用golang計算一個字符串的md5值
我們先用shell來計算一下,再去判斷golang計算的md5值是否正確
在線md5計算工具:
https://www.sojson.com/encrypt_md5.html
用shell計算字符串md5值
echo "helloworld"|md5sum
結(jié)果計算的值跟在線的不對應(yīng),這是怎么回事,是在線的計算錯了,還是我shell命令計算錯了
原來是echo 默認(rèn)是在字符串最后加上了"\n",上圖里計算的是帶有"\n"的計算值
如何獲取echo的幫助文檔
方式一:
man echo
方式二:
我們都知道一般linux命令的幫助信息,是 command -h,command --h,command -help,command --help,可是這些對echo 命令都不好使,這個命令是回顯的,echo 什么就回顯什么,如圖
這個命令得反過來 是help echo
通過echo 幫助文檔,我們可以使用-n不追加\n,
所以最后正確的用shell命令獲取字符串的方式應(yīng)該是,這就跟在線的對應(yīng)起來了
echo -n "helloworld"|md5sum
用golang計算字符串的md5值
package main import ( "crypto/md5" "encoding/hex" "fmt" ) func MD5(str string) string { signByte := []byte(str) hash := md5.New() hash.Write(signByte) return hex.EncodeToString(hash.Sum(nil)) } func main() { str := "helloworld" stMD5 := MD5(str) fmt.Println("str:", str, "\nstrMD5", stMD5) }
運行結(jié)果:
驗證,用shell golang和在線md5計算工具
番外:
在mac系統(tǒng)上計算md5的方式:
md5 -s helloworld
到此這篇關(guān)于利用golang和shell計算一個字符串的md5值的文章就介紹到這了,更多相關(guān)golang shell計算md5值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Golang連接PostgreSQL基本操作的實現(xiàn)
PostgreSQL是常見的免費的大型關(guān)系型數(shù)據(jù)庫,本文主要介紹了Golang連接PostgreSQL基本操作的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2024-02-02golang中l(wèi)og包自定義輸出日志格式與寫入到文件
這篇文章主要給大家介紹了關(guān)于golang中l(wèi)og包自定義輸出日志格式與寫入到文件的相關(guān)資料,日志輸出在任何項目中都極其重要,是有助于后續(xù)我們排查解決程序BUG,需要的朋友可以參考下2023-06-06Go語言中int、float、string類型之間相互的轉(zhuǎn)換
golang是強類型語言,在應(yīng)用過程中類型轉(zhuǎn)換基本都會用到,下面這篇文章主要給大家介紹了關(guān)于Go語言中int、float、string類型相互之間的轉(zhuǎn)換,需要的朋友可以參考下2022-01-01