Python和GO語(yǔ)言實(shí)現(xiàn)的消息摘要算法示例
常用的消息摘要算法有MD5和SHA,這些算法在python和go的庫(kù)中都有,需要時(shí)候調(diào)用下就OK了,這里總結(jié)下python和go的實(shí)現(xiàn)。
一、python消息摘要示例
代碼如下:
#! /usr/bin/python
'''
File : testHash.py
Author : Mike
E-Mail : Mike_Zhang@live.com
'''
import hashlib
src = raw_input("Input string : ")
funcNameList = ["MD5","SHA1","SHA224","SHA256","SHA384","SHA512"]
funcMap = {
"MD5" : lambda cnt : hashlib.md5(cnt).hexdigest(),
"SHA1" : lambda cnt : hashlib.sha1(cnt).hexdigest(),
"SHA224" : lambda cnt : hashlib.sha224(cnt).hexdigest(),
"SHA256" : lambda cnt : hashlib.sha256(cnt).hexdigest(),
"SHA384" : lambda cnt : hashlib.sha384(cnt).hexdigest(),
"SHA512" : lambda cnt : hashlib.sha512(cnt).hexdigest()
}
for funcName in funcNameList :
print funcName,"\t:\t",funcMap[funcName](src)
運(yùn)行效果:
二、go語(yǔ)言消息摘要示例
代碼如下:
/*
File : hashTest.go
Author : Mike
E-Mail : Mike_Zhang@live.com
*/
package main
import (
"fmt"
"crypto/md5"
"crypto/sha1"
"crypto/sha256"
"crypto/sha512"
"hash"
)
func main() {
funcNameList := []string{"MD5","SHA1","SHA224","SHA256","SHA384","SHA512"}
funcMap := map[string]func(msg []byte) hash.Hash{
"MD5" : func(msg []byte) hash.Hash{var h hash.Hash = md5.New();h.Write(msg);return h},
"SHA1" : func(msg []byte) hash.Hash{var h hash.Hash = sha1.New();h.Write(msg);return h},
"SHA224" : func(msg []byte) hash.Hash{var h hash.Hash = sha256.New224();h.Write(msg);return h},
"SHA256" : func(msg []byte) hash.Hash{var h hash.Hash = sha256.New();h.Write(msg);return h},
"SHA384" : func(msg []byte) hash.Hash{var h hash.Hash = sha512.New384();h.Write(msg);return h},
"SHA512" : func(msg []byte) hash.Hash{var h hash.Hash = sha512.New();h.Write(msg);return h},
}
fmt.Printf("Input string : ")
var msg1 string
fmt.Scanf("%s",&msg1)
for _,funcName := range funcNameList{
fmt.Printf("%s \t:\t %x\n",funcName,funcMap[funcName]([]byte(msg1)).Sum())
}
}
運(yùn)行效果:
哈哈,是不是發(fā)現(xiàn)上面兩組程序的代碼結(jié)構(gòu)相同啊,其實(shí)我就是想借助python來學(xué)習(xí)go語(yǔ)言的:先用python很輕巧的實(shí)現(xiàn)一個(gè)功能,我再考慮用go做一遍。這里總結(jié)下,方便以后使用。
- Python hashlib常見摘要算法詳解
- Python中摘要算法MD5,SHA1簡(jiǎn)介及應(yīng)用實(shí)例代碼
- python基礎(chǔ)教程之python消息摘要算法使用示例
- python+excel接口自動(dòng)化獲取token并作為請(qǐng)求參數(shù)進(jìn)行傳參操作
- 如何基于python對(duì)接釘釘并獲取access_token
- python 產(chǎn)生token及token驗(yàn)證的方法
- 對(duì)python的unittest架構(gòu)公共參數(shù)token提取方法詳解
- Python用摘要算法生成token及檢驗(yàn)token的示例代碼
相關(guān)文章
python圖形界面開發(fā)之wxPython樹控件使用方法詳解
這篇文章主要介紹了python圖形界面開發(fā)之wxPython樹控件使用方法詳解,需要的朋友可以參考下2020-02-02網(wǎng)站滲透常用Python小腳本查詢同ip網(wǎng)站
這篇文章主要介紹了網(wǎng)站滲透常用Python小腳本查詢同ip網(wǎng)站,需要的朋友可以參考下2017-05-05解決pandas中讀取中文名稱的csv文件報(bào)錯(cuò)的問題
今天小編就為大家分享一篇解決pandas中讀取中文名稱的csv文件報(bào)錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07Queue 實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模型(實(shí)例講解)
下面小編就為大家?guī)硪黄猀ueue 實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模型(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11Pyinstaller打包Scrapy項(xiàng)目的實(shí)現(xiàn)步驟
這篇文章主要介紹了Pyinstaller打包Scrapy項(xiàng)目的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09python dataframe列應(yīng)用正則表達(dá)式篩選方式
這篇文章主要介紹了python dataframe列應(yīng)用正則表達(dá)式篩選方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02