利用golang和shell計(jì)算一個(gè)字符串的md5值
需求:
用golang計(jì)算一個(gè)字符串的md5值
我們先用shell來(lái)計(jì)算一下,再去判斷golang計(jì)算的md5值是否正確
在線md5計(jì)算工具:
https://www.sojson.com/encrypt_md5.html
用shell計(jì)算字符串md5值
echo "helloworld"|md5sum
結(jié)果計(jì)算的值跟在線的不對(duì)應(yīng),這是怎么回事,是在線的計(jì)算錯(cuò)了,還是我shell命令計(jì)算錯(cuò)了
原來(lái)是echo 默認(rèn)是在字符串最后加上了"\n",上圖里計(jì)算的是帶有"\n"的計(jì)算值
如何獲取echo的幫助文檔
方式一:
man echo
方式二:
我們都知道一般linux命令的幫助信息,是 command -h,command --h,command -help,command --help,可是這些對(duì)echo 命令都不好使,這個(gè)命令是回顯的,echo 什么就回顯什么,如圖
這個(gè)命令得反過(guò)來(lái) 是help echo
通過(guò)echo 幫助文檔,我們可以使用-n不追加\n,
所以最后正確的用shell命令獲取字符串的方式應(yīng)該是,這就跟在線的對(duì)應(yīng)起來(lái)了
echo -n "helloworld"|md5sum
用golang計(jì)算字符串的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) }
運(yùn)行結(jié)果:
驗(yàn)證,用shell golang和在線md5計(jì)算工具
番外:
在mac系統(tǒng)上計(jì)算md5的方式:
md5 -s helloworld
到此這篇關(guān)于利用golang和shell計(jì)算一個(gè)字符串的md5值的文章就介紹到這了,更多相關(guān)golang shell計(jì)算md5值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于Go語(yǔ)言實(shí)現(xiàn)一個(gè)壓測(cè)工具
這篇文章主要為大家詳細(xì)介紹了基于Go語(yǔ)言實(shí)現(xiàn)一個(gè)簡(jiǎn)單的壓測(cè)工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-01-01Golang連接PostgreSQL基本操作的實(shí)現(xiàn)
PostgreSQL是常見的免費(fèi)的大型關(guān)系型數(shù)據(jù)庫(kù),本文主要介紹了Golang連接PostgreSQL基本操作的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02golang中l(wèi)og包自定義輸出日志格式與寫入到文件
這篇文章主要給大家介紹了關(guān)于golang中l(wèi)og包自定義輸出日志格式與寫入到文件的相關(guān)資料,日志輸出在任何項(xiàng)目中都極其重要,是有助于后續(xù)我們排查解決程序BUG,需要的朋友可以參考下2023-06-06Go語(yǔ)言中int、float、string類型之間相互的轉(zhuǎn)換
golang是強(qiáng)類型語(yǔ)言,在應(yīng)用過(guò)程中類型轉(zhuǎn)換基本都會(huì)用到,下面這篇文章主要給大家介紹了關(guān)于Go語(yǔ)言中int、float、string類型相互之間的轉(zhuǎn)換,需要的朋友可以參考下2022-01-01