Python和GO语言实现的消息摘要算法示例


Posted in Python onMarch 10, 2015

常用的消息摘要算法有MD5和SHA,这些算法在python和go的库中都有,需要时候调用下就OK了,这里总结下python和go的实现。

一、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)

运行效果:

Python和GO语言实现的消息摘要算法示例

二、go语言消息摘要示例

代码如下:

/*

      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())

        }

}

运行效果:

Python和GO语言实现的消息摘要算法示例

哈哈,是不是发现上面两组程序的代码结构相同啊,其实我就是想借助python来学习go语言的:先用python很轻巧的实现一个功能,我再考虑用go做一遍。这里总结下,方便以后使用。

Python 相关文章推荐
python代码检查工具pylint 让你的python更规范
Sep 05 Python
python实现DNS正向查询、反向查询的例子
Apr 25 Python
django传值给模板, 再用JS接收并进行操作的实例
May 28 Python
python中time库的实例使用方法
Oct 31 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
Feb 13 Python
python实现拼图小游戏
Feb 22 Python
python 实现任务管理清单案例
Apr 25 Python
python如何控制进程或者线程的个数
Oct 16 Python
关于python scrapy中添加cookie踩坑记录
Nov 17 Python
django项目中使用云片网发送短信验证码的实现
Jan 19 Python
python 求两个向量的顺时针夹角操作
Mar 04 Python
Python Pandas模块实现数据的统计分析的方法
Jun 24 Python
Windows和Linux下使用Python访问SqlServer的方法介绍
Mar 10 #Python
Python脚本实现代码行数统计代码分享
Mar 10 #Python
Windows系统配置python脚本开机启动的3种方法分享
Mar 10 #Python
Python自动化构建工具scons使用入门笔记
Mar 10 #Python
Python操作CouchDB数据库简单示例
Mar 10 #Python
Python性能优化技巧
Mar 09 #Python
Python中的赋值、浅拷贝、深拷贝介绍
Mar 09 #Python
You might like
PHP使用header()输出图片缓存实例
2014/12/09 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
php7安装yar扩展的方法详解
2017/08/03 PHP
浅谈javascript面向对象程序设计
2015/01/21 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
2016/02/16 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
2016/09/24 Javascript
JS实现的图片预览插件与用法示例【不上传图片】
2016/11/25 Javascript
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
2016/12/15 Javascript
原生ajax处理json格式数据的实例代码
2016/12/25 Javascript
原生JS控制多个滚动条同步跟随滚动效果
2017/12/22 Javascript
JS实现常见的查找、排序、去重算法示例
2018/05/21 Javascript
刷新页面后让控制台的js代码继续执行
2019/09/20 Javascript
Vue实现点击箭头上下移动效果
2020/06/11 Javascript
Vue js with语句原理及用法解析
2020/09/03 Javascript
一分钟学会JavaScript中的try-catch
2020/12/14 Javascript
[01:15]《辉夜杯》北京网鱼队巡礼
2015/10/26 DOTA
[49:20]VG vs TNC Supermajor小组赛B组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
2015/07/27 Python
Python编程中装饰器的使用示例解析
2016/06/20 Python
python3对拉勾数据进行可视化分析的方法详解
2019/04/03 Python
Python实现bilibili时间长度查询的示例代码
2020/01/14 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
2020/01/20 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
2020/02/17 Python
pandas数据拼接的实现示例
2020/04/16 Python
HTML5验证以及日期显示的实现详解
2013/07/05 HTML / CSS
ASOS比利时:英国线上零售商及自有品牌
2018/07/29 全球购物
意大利男装网店:Vrients
2019/05/02 全球购物
商务主管岗位职责
2013/12/08 职场文书
大学校庆策划书
2014/01/31 职场文书
经典婚礼主持开场白
2014/03/13 职场文书
《海伦?凯勒》教学反思
2014/04/17 职场文书
员工规章制度范本
2015/08/07 职场文书
宝宝满月祝酒词
2015/08/10 职场文书
vue如何实现关闭对话框后刷新列表
2022/04/08 Vue.js
Oracle 11g数据库使用expdp每周进行数据备份并上传到备份服务器
2022/06/28 Oracle