golang 中的md5 、hmac、sha1算法的简单实现

package main

import (
    "crypto/hmac"
    "crypto/md5"
    "crypto/sha1"
    "encoding/hex"
    "fmt"
)

func Md5(data string) string {
    md5 := md5.New()
    md5.Write([]byte(data))
    md5Data := md5.Sum([]byte(""))
    return hex.EncodeToString(md5Data)
}

func Hmac(key, data string) string {
    hmac := hmac.New(md5.New, []byte(key))
    hmac.Write([]byte(data))
    return hex.EncodeToString(hmac.Sum([]byte("")))
}

func Sha1(data string) string {
    sha1 := sha1.New()
    sha1.Write([]byte(data))
    return hex.EncodeToString(sha1.Sum([]byte("")))
}

func main() {
    fmt.Println(Md5("hello"))
    fmt.Println(Hmac("key2", "hello"))
    fmt.Println(Sha1("hello"))
}

原文地址:https://www.cnblogs.com/enumx/p/12327061.html

时间: 2024-11-17 12:39:06

golang 中的md5 、hmac、sha1算法的简单实现的相关文章

MD5和SHA1算法C++实现及运行时间分析

1.MD5代码实现 HMAC.H即MD5头文件. #ifndef HMAC_H #define HMAC_H // POINTER defines a generic pointer type typedef unsigned char *POINTER; // UINT2 defines a two byte word typedef unsigned short int UINT2; // UINT4 defines a four byte word typedef unsigned lon

java中使用MD5加密的算法

MD5,全名Message Digest Algorithm 5,中文名为消息摘要算法第五版,为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护.以下是JAVA语言中使用MD5加密的工具类. import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5Util { /** * 对字符串进行MD5摘要加密,返回结果与MySQL的MD5函数一致 *

命令行中生成 md5、sha1、sha256 校验和

在测试过程中有时候需要对某个文件Hash值进行校验,如接口返回一个文件下载地址及hash值,那么除了对比平台端展示和接口下发是否一至,还有一个办法就是命令行使用相关命令 1.Window 注:我是在git命令行下进行的 如下所示 2.Mac 如下所示 原文地址:https://www.cnblogs.com/mrjade/p/11776034.html

MD5和SHA-1被破解

2004年8月17日在美国加州圣巴巴拉举行了一次国际密码学学术年会(Crypto'2004),当晚来自中国山东大学的王小云教授做了关于破译 MD5.HAVAL-128. MD4和RIPEMD算法的报告.当她公布了破解结果之后,报告被激动的掌声打断,引起了全场的轰动.会议结束后,很多专家来到王小云教授身边向她表示祝 贺,连世界顶尖级的密码学大师Rivest和Shamir也上前表示他们的欣喜和祝贺,世界信息安全方面的专家们对王小云教授等人的论文给予高度评 价,MD5的设计者和著名的公钥密码系统RSA

Redis源码中探秘SHA-1算法原理及其编程实现

导读 SHA-1算法是第一代"安全散列算法"的缩写,其本质就是一个Hash算法.SHA系列标准主要用于数字签名,生成消息摘要,曾被认为是MD5算法的后继者.如今SHA家族已经出现了5个算法.Redis使用的是SHA-1,它能将一个最大2^64比特的消息,转换成一串160位的消息摘要,并能保证任何两组不同的消息产生的消息摘要是不同的.虽然SHA1于早年间也传出了破解之道,但作为SHA家族的第一代算法,对我们仍然很具有学习价值和指导意义. SHA-1算法的详细内容可以参考官方的RFC:ht

python 中md5 和 sha1 加密, md5 + os.urandom 生成全局唯一ID

首先先来介绍一下md5 和 sha1 的概念 MD5 MD5的全称是Message-Digest Algorithm 5(信息-摘要算法).128位长度.目前MD5是一种不可逆算法. 具有很高的安全性.它对应任何字符串都可以加密成一段唯一的固定长度的代码. SHA1 SHA1的全称是Secure Hash Algorithm(安全哈希算法) .SHA1基于MD5,加密后的数据长度更长, 它对长度小于264的输入,产生长度为160bit的散列值.比MD5多32位. 因此,比MD5更加安全,但SHA

(转)3DES、AES、RC6、TEA、RSA、MD5、SHA1、SHA256加密源码大聚齐

原贴地址:http://www.amobbs.com/thread-5466438-1-1.html DES---研究过加密的朋友十分熟悉,老牌的加密方法了.这是一个可逆的对称加密算 法,也是应用最广泛的密钥系统.好像是从1977年美国政府开始采用的.大家都看过U-571吧,DES的思路就是参照二战时期盟军缴获的德军恩格玛加密 机,不过DES比那个要NB的多多了.到现在为止,除了差分分析法和线性分析法外只有暴力穷举法了.前两种方法不是密码学家或数学家都不懂呵,不过穷举 DES,以现有我们大家都可

asp中的md5/sha1/sha256算法收集

对于asp这种古董级的技术,这年头想找一些有用的资料已经不容易了,下面是一些常用的加密算法: md5 (将以下代码另存为md5.inc) + ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62

ASP.NET中MD5与SHA1加密的几种方法

MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由Mit Laboratory for Computer Science和Rsa data security inc的Ronald l. rivest开发出来,经md2.md3和md4发展而来.它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数).不管是md2.md4还是md5,它们都需要获得一个随机长度的信息并产