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中的文件操作
Aug 28 Python
Python类属性的延迟计算
Oct 22 Python
快速了解Python中的装饰器
Jan 11 Python
Python for循环中的陷阱详解
Jul 13 Python
python实现连连看辅助(图像识别)
Mar 25 Python
Ubuntu下Python+Flask分分钟搭建自己的服务器教程
Nov 19 Python
python 实现按对象传值
Dec 26 Python
利用keras加载训练好的.H5文件,并实现预测图片
Jan 24 Python
python 实现分组求和与分组累加求和代码
May 18 Python
使用OpenCV对车道进行实时检测的实现示例代码
Jun 19 Python
django template实现定义临时变量,自定义赋值、自增实例
Jul 12 Python
python如何为list实现find方法
May 30 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
拼音码表的生成
2006/10/09 PHP
个人站长制做网页常用的php代码
2007/03/03 PHP
关于session在PHP5的配置文件中的详细设置参数说明
2011/04/20 PHP
php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
2011/10/31 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
2014/06/23 PHP
纯php生成随机密码
2015/10/30 PHP
浅谈PHP表单提交(POST&GET&URL编/解码)
2017/04/03 PHP
利用 fsockopen() 函数开放端口扫描器的实例
2017/08/19 PHP
php的优点总结 php有哪些优点
2019/07/19 PHP
JavaScript常用全局属性与方法记录积累
2013/07/03 Javascript
window.location.href IE下跳转失效的解决方法
2014/03/27 Javascript
超精准的javascript验证身份证号的具体实现方法
2015/11/18 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
2016/08/31 Javascript
安装vue-cli的简易过程
2018/05/22 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
2018/08/12 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
2019/09/21 Javascript
[07:52]2014DOTA2 TI逗比武士游V社解说背后的故事
2014/07/10 DOTA
[50:48]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python格式化css文件的方法
2015/03/10 Python
python 如何快速找出两个电子表中数据的差异
2017/05/26 Python
定制FileField中的上传文件名称实例
2017/08/23 Python
Python定义一个跨越多行的字符串的多种方法小结
2018/07/19 Python
Django之form组件自动校验数据实现
2020/01/14 Python
台湾最大网路书店:博客来
2018/03/18 全球购物
施华洛世奇匈牙利官网:SWAROVSKI匈牙利
2019/07/06 全球购物
俄罗斯领先的移动和数字设备在线商店:Svyaznoy.ru
2020/12/21 全球购物
Ajax主要包含了哪些技术
2014/06/12 面试题
自考自我鉴定范文
2013/10/30 职场文书
商务助理岗位职责
2013/11/13 职场文书
应聘编辑职位自荐信范文
2014/01/05 职场文书
党建目标管理责任书
2014/07/25 职场文书
创先争优活动心得体会
2014/09/04 职场文书
男生贾里读书笔记
2015/06/30 职场文书
小程序教您怎样你零成本推广获取数万用户的方法
2019/07/30 职场文书
52条SQL语句教你性能优化
2021/05/25 MySQL
mysql insert 存在即不插入语法说明
2022/03/25 MySQL