MD5算法

文章目录

  • 前言
  • 一、MD5是什么?
  • 二、go语言实现


前言

提示:以下是本篇文章正文内容,下面案例可供参考

一、MD5是什么?

MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。这套算法的程序在 RFC 1321 标准中被加以规范。1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。

二、go语言实现

package mainimport ("crypto/md5""encoding/hex""fmt"
)func main() {hash := md5.New()hash.Write([]byte("hello baby"))//io.WriteString(hash, "hello baby!")result := hash.Sum (nil)fmt.Println(hex.EncodeToString(result))hash.Reset()hash.Write([]byte("hello baby123"))result = hash.Sum(nil)fmt.Println(hex.EncodeToString(result))//fmt.Printf("%x\n", result)
}//4be678c3cfbd2cebe0e36503d53e6767
//4be678c3cfbd2cebe0e36503d53e6767
//292bf3c832cce2ab5d4f9775596b13bd
//3132334be678c3cfbd2cebe0e36503d53e6767func main6_2() {result := md5.Sum([]byte("hello baby"))fmt.Println(hex.EncodeToString(result[:]))
}/*
两种方式的优缺点:优点							缺点
方式一      可以对哈希对象多次复用          代码繁琐
方式二  		代码简洁							对象不能复用*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496670.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 中 xpath 语法 与 lxml 库解析 HTML/XML 和 CSS Selector

The lxml.etree Tutorial :https://lxml.de/tutorial.html python3 解析 xml:https://www.cnblogs.com/deadwood-2016/p/8116863.html 微软文档: XPath 语法 和 XPath 函数 W3school Xpath 教程:http://www.w3school.com.cn/xp…

Java并发编程实战~生产者-消费者模式

前面我们在《Worker Thread 模式》中讲到,Worker Thread 模式类比的是工厂里车间工人的工作模式。但其实在现实世界,工厂里还有一种流水线的工作模式,类比到编程领域,就是生产者 - 消费者模式。 生产者 - 消费者模式在编程领域的…

4-css图片效果

设置边框border-style:dotted; /* 点画线 */ border-color:#FF9900; /* 边框颜色 */ border-width:5px; /* 边框粗细 */也可以合并书写 border:5px double #FF00FF;width 50% 表示目前此元素宽度相对于父元素宽度为50%float 用于设定图片与文字的混排方式margin用于设置距离…

AI界的七大未解之谜:OpenAI丢出一组AI研究课题

来源:三体智讯今天,OpenAI在官方博客上丢出了7个研究过程中发现的未解决问题。OpenAI希望这些问题能够成为新手入坑AI的一种有趣而有意义的方式,也帮助从业者提升技能。OpenAI版AI界七大未解之谜,现在正式揭晓——丨1. Slitherin难…

vue 前端商城框架_前端工程师要掌握几个Vue框架

vue是一套用于构建用户界面的渐进式JavaScript框架,简单说Vue是类似于view的前端框架。vue开发核心是关注视图层,同时它更加容易与第三方库结合,再者我们在现有的项目中可以直接整合一起。目前vue技术社区在英文或中文都非常丰富,…

sha256算法

文章目录前言一、sha256是什么?二、go语言实现前言 提示:以下是本篇文章正文内容,下面案例可供参考 一、sha256是什么? SHA256是SHA-2下细分出的一种算法 SHA-2,名称来自于安全散列算法2(英语&#xff…

Python 模块 requests 模拟登录豆瓣 并 发表动态

如何抓取 WEB 页面:http://blog.csdn.net/chenguolinblog/article/details/45024643github 上一个关于模拟登录的项目:https://github.com/xchaoinfo/fuck-login Python爬虫之模拟登录总结:http://blog.csdn.net/churximi/article/details/50…

华为云BU总裁:如何把AI从噱头变为生产力?

来源:亿欧网 作者:张之颖“别跟着喊口号,少看朋友圈。…人工智能在中国被过分炒作了,现在国内人工智能已被娱乐化。不是做两个刷脸应用、搞一个APP就叫做人工智能。”华为云BU总裁郑叶来接受环球网记者的采访时表示,华…

DSA签名算法

文章目录前言一、DSA是什么?二、go语言实现前言 提示:以下是本篇文章正文内容,下面案例可供参考 一、DSA是什么? DSA(Digital Signature Algorithm,数字签名算法,用作数字签名标准的一部分&a…

Java并发编程实战~Actor 模型

Hello Actor 模型 Actor 模型本质上是一种计算模型,基本的计算单元称为 Actor,换言之,在 Actor 模型中,所有的计算都是在 Actor 中执行的。在面向对象编程里面,一切都是对象;在 Actor 模型里,一…

master分支删除文件_Git分支基础简介;创建分支;合并分支;删除分支;

目录为了演示:我们创建了一个本地仓库testBranch,一个远程仓库testBranchRe:1.当我们创建一个本地仓库的时候,这个本地仓库中就会有一个主分支,即master分支;2.每次提交,master就会向后移动一个…

跳动的菜单

<html> <head> <meta http-equiv"Content-Type" content"text/html; charsetgb2312" /> <title>模仿as效果的导航菜单</title> <style type"text/css"> <!-- a:link,a:visited { text-decoration: no…

Python 爬虫框架 - PySpider

Python爬虫进阶四之PySpider的用法&#xff1a;http://cuiqingcai.com/2652.html 网络爬虫剖析&#xff0c;以Pyspider为例&#xff1a;http://python.jobbole.com/81109 Python爬虫利器六之PyQuery的用法&#xff1a;https://cuiqingcai.com/2636.html 爬虫框架pyspider个人总…

AI技术加持,让协作机器人更安全

来源&#xff1a;机器人创新生态丨公众号来自众家新创公司与实验室的碰撞侦测与追踪技术&#xff0c;将使得在人类与其他移动物体周边的协作机器人更安全。一个美国圣地亚哥大学&#xff08;University of San Diego&#xff09;的团队便开发了一种更快速的算法&#xff0c;能协…

RSA签名算法

文章目录前言一、RSA是什么&#xff1f;前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、RSA是什么&#xff1f; RSA数字签名算法的过程为&#xff1a;A对明文m用解密变换作: (公钥用来加密&#xff0c;私钥用来解密&#xff0c;数字签名是用…

捕获异常_Recover捕获异常

“ 本文来源于《The Go Programming Language》”5.10. Recover捕获异常通常来说&#xff0c;不应该对panic异常做任何处理&#xff0c;但有时&#xff0c;也许我们可以从异常中恢复&#xff0c;至少我们可以在程序崩溃前&#xff0c;做一些操作。举个例子&#xff0c;当web服务…

仿msn弹出窗口

msnMessage.js文件代码&#xff1a; Code1 /** 2 ** 3 ** 类名&#xff1a;msnMessage 4 ** 功能&#xff1a;提供类似MSN消息框 5 ** 示例&#xff1a; 6 --------------------------------------------------------------------------------…

ECC签名算法

文章目录前言一、ECC是什么&#xff1f;二、go语言实现前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、ECC是什么&#xff1f; ECC全称为“Ellipse Curve Ctyptography”&#xff0c;是一种基于椭圆曲线数学的公开密钥加密算法。椭圆曲线在密…

CPU诞生记|CPU制造全过程详解

来源&#xff1a;电子产品世界CPU(Centralprocessingunit)是现代计算机的核心部件&#xff0c;又称为“微处理器”。对于PC而言&#xff0c;CPU的规格与频率常常被用来作为衡量一台电脑性能强弱重要指标。Intelx86架构已经经历了二十多个年头&#xff0c;而x86架构的CPU对我们大…

二维数组 类型_Java第六章 | 二维数组的创建及使用、数组排序算法

二维数组的创建及使用1、二维数组的创建2、二维数组初始化3、使用二维数组二维数组的创建声明二维数组的方法有两种&#xff0c;语法如下所示&#xff1a;数组元素类型 数组名字[ ][ ];数组元素类型[ ][ ] 数组名字;数组元素类型&#xff1a;决定了数组的数据类型&#xff0c;它…