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中exit、return、sys.exit()等使用实例和区别
May 28 Python
详解Python文本操作相关模块
Jun 22 Python
Python实现的爬虫功能代码
Jun 24 Python
python判断完全平方数的方法
Nov 13 Python
python 运用Django 开发后台接口的实例
Dec 11 Python
pyqt5 实现多窗口跳转的方法
Jun 19 Python
linux环境中没有网络怎么下载python
Jul 07 Python
Pytorch 实现权重初始化
Dec 31 Python
Python django框架开发发布会签到系统(web开发)
Feb 12 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
Mar 14 Python
详解Anaconda 的安装教程
Sep 23 Python
利用python制作拼图小游戏的全过程
Dec 04 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者的疑难问答(2)
2006/10/09 PHP
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
2009/11/27 PHP
服务器web工具 php环境下
2010/12/29 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
2013/06/20 PHP
php使用cookie实现记住用户名和密码实现代码
2015/04/27 PHP
WordPress中调试缩略图的相关PHP函数使用解析
2016/01/07 PHP
PHP类型约束用法示例
2016/09/28 PHP
JS保留两位小数 四舍五入函数的小例子
2013/11/20 Javascript
js创建元素(节点)示例
2014/01/02 Javascript
js如何获取object类型里的键值
2014/02/18 Javascript
jquery插件之定时查询待处理任务数量
2014/05/01 Javascript
简单易用的倒计时js代码
2014/08/04 Javascript
使用JavaScript实现ajax的实例代码
2016/05/11 Javascript
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
2017/08/22 Javascript
Angular中响应式表单的三种更新值方法详析
2017/08/22 Javascript
Django+Vue跨域环境配置详解
2018/07/06 Javascript
vue-自定义组件传值的实例讲解
2018/09/18 Javascript
nodejs dgram模块广播+组播的实现示例
2019/11/04 NodeJs
原生javascript的ajax请求及后台PHP响应操作示例
2020/02/24 Javascript
Python数据类型详解(一)字符串
2016/05/08 Python
在Python程序和Flask框架中使用SQLAlchemy的教程
2016/06/06 Python
windows系统下Python环境搭建教程
2017/03/28 Python
使用python爬虫实现网络股票信息爬取的demo
2018/01/05 Python
Python实现合并两个列表的方法分析
2018/05/28 Python
python使用Pandas库提升项目的运行速度过程详解
2019/07/12 Python
大家都说好用的Python命令行库click的使用
2019/11/07 Python
Python virtualenv虚拟环境实现过程解析
2020/04/18 Python
Python基础教程之输入输出和运算符
2020/07/26 Python
python 实现围棋游戏(纯tkinter gui)
2020/11/13 Python
CSS3颜色值RGBA与渐变色使用介绍
2020/03/06 HTML / CSS
C语言中一个结构不能包含指向自己的指针吗
2012/05/25 面试题
物业管理计划书
2014/01/10 职场文书
农业局学习党的群众路线教育实践活动心得体会
2014/03/07 职场文书
科学发展观活动总结
2014/08/28 职场文书
紧急通知
2015/04/17 职场文书
MySQL中的隐藏列的具体查看
2021/09/04 MySQL