golang md5加密和python md5加密比较
python md5加密和golang md5加密各有不同,记录于此做备忘
Python 方法 md5
import base64
import hashlib def get_md5_data(body):
"""
md5加密
:param body_json:
:return:
""" md5lib = hashlib.md5()
md5lib.update(body.encode("utf-8"))
body_md5 = md5lib.digest()
body_md5 = base64.b64encode(body_md5)
return body_md5 if __name__ == "__main__":
d = get_md5_data("woGo")
print(d)
输出结果:
b'daK0g/biVYQtHOZt0PaoEQ=='
比较 hash.digest()
和 hash.hexdigest()
区别
hash.digest()
返回摘要,作为二进制数据字符串值
hash.hexdigest()
返回摘要,作为十六进制数据字符串值
import hashlib md5 = hashlib.md5()
md5.update("a".encode('utf-8'))
print(u"digest返回的摘要:%s"% md5.digest())
print(u"hexdigest返回的摘要:%s"% md5.hexdigest())
结果
digest返回的摘要:b'\x0c\xc1u\xb9\xc0\xf1\xb6\xa81\xc3\x99\xe2iw&a'
hexdigest返回的摘要:0cc175b9c0f1b6a831c399e269772661
Golang方法 md5 和 sha512
package main import (
"crypto/md5"
"crypto/sha512"
"encoding/base64"
"encoding/hex"
"fmt"
) func main() {
//fmt.Println(base64EncodeStr("2121"))
//fmt.Println(md5Str("woGo"))
//fmt.Println(sha512Str("woGo"))
//fmt.Println(base64DecodeStr(base64EncodeStr("fd"))) // md5加密
has := md5.New() // 创建md5算法
has.Write([]byte("woGo")) // 写入需要加密的数据
b := has.Sum(nil) // 获取hash值字符切片;Sum函数接受一个字符切片,这个切片的内容会原样的追加到abc123加密后的hash值的前面,这里我们不需要这么做,所以传入nil
fmt.Println(base64EncodeStr(string(b))) } //md5验证
func md5Str(src string) string { h := md5.New()
h.Write([]byte(src)) //
//fmt.Printf("%s\n", hex.EncodeToString(h.Sum(nil))) // 输出加密结果
return hex.EncodeToString(h.Sum(nil))
} //sha512验证
func sha512Str(src string) string {
h := sha512.New()
h.Write([]byte(src)) //
//fmt.Printf("%s\n", hex.EncodeToString(h.Sum(nil))) // 输出加密结果
return hex.EncodeToString(h.Sum(nil))
} //base编码
func base64EncodeStr(src string) string {
return string(base64.StdEncoding.EncodeToString([]byte(src)))
} //base解码
func base64DecodeStr(src string) string {
a, err := (base64.StdEncoding.DecodeString(src))
if err != nil {
return "error"
}
return string(a)
}
输出结果:
daK0g/biVYQtHOZt0PaoEQ==
golang md5加密和python md5加密比较的更多相关文章
- python md5加密中文
import md5 md5.new(u'中文').hexdigest() 会失败,报告ascii码不能解码0x.... 原因是md5会自动将被加密的数据转成字节码,如果没有详细制定编码,则可能采用了 ...
- python接口自动化测试二十七:密码MD5加密 ''' MD5加密 ''' # 由于MD5模块在python3中被移除 # 在python3中使用hashlib模块进行md5操作 import hashlib # 待加密信息 str = 'asdas89799,.//plrmf' # 创建md5对象 hl = hashlib.md5() # Tips # 此处必须声明encode # 若写法为
python接口自动化测试二十七:密码MD5加密 ''' MD5加密 '''# 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作import has ...
- python接口自动化测试二十七:加密与解密MD5、base64
# MD5加密 # 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作 import hashlib def MD5(str): # 创建md5对象 hl ...
- md5码加密(Python)
import hashlib import hmac m = input('输入要加密内容:') md = hashlib.md5()#生成md5 hash对象 md.update(m.encode( ...
- Python 生成随机数函数和加密函数(MD5)
内容来自debugtalk import hashlib import random import string def gen_random_string(str_len): '''生成指定长度的随 ...
- python MD5加密和flask-generate_password_hash
实际开发过程中,有些数据是需要加密保存或者处理的,为了就是为了保证源数据的安全性.那么MD5加密作为一种简单有效的非对称加密方式在日常开发过程中也经常的被使用到.下面就来介绍下MD5算法: 1. * ...
- 解决java,C#,php,python MD5加密不一致问题
JAVA写法 public static String md5Base64(final String str, final String key) throws Exception { if ((nu ...
- MD5工具类,提供字符串MD5加密、文件MD5值获取(校验)功能
MD5工具类,提供字符串MD5加密(校验).文件MD5值获取(校验)功能 : package com.yzu.utils; import java.io.File; import java.io.Fi ...
- Java实现 Base64、MD5、MAC、HMAC加密
开始对那些基本的加密还不怎么熟练,然后总结了些,写了一个测试:支持 Base64.MD5.MAC.HMAC加密,长话短说,我们都比较喜欢自己理解,看代码吧! 采用的输UTF-8的格式... packa ...
随机推荐
- Kafka消息是采用Pull模式,还是Push模式?
Kafka最初考虑的问题是,customer应该从brokes拉取消息还是brokers将消息推送到consumer,也就是pull还push.在这方面,Kafka遵循了一种大部分消息系统共同的传统的 ...
- idea-spring-boot打包jar/var
下面的插件配置的里面需要加上具体的main类 <groupId>org.springframework.boot</groupId> <artifactId>spr ...
- Spring Mvc 源代码之我见 二
上一篇简单介绍了spring mvc 的一些基本内容 和DispatcherServlet 的doc.这一篇将会继续写我对Spring Mvc 源代码的理解.直接上代码: /** * This imp ...
- 通过pink构造简易部署脚本
安装git https://www.cnblogs.com/youxiu326/p/10540753.html 安装maven https://www.cnblogs.com/youxi ...
- solr集群搭建,zookeeper集群管理
1. 第一步 把solrhome中的配置文件上传到zookeeper集群.使用zookeeper的客户端上传. 客户端命令位置:/root/solr-4.10.3/example/scripts/cl ...
- apollo规划控制视频-12basic motion planning and overview
- react、react-router、redux 也许是最佳小实践1
小前言 这是一个小小的有关react的小例子,希望通过一个小例子,可以让新手更好的了解到react.react-router4.0.redux的集中使用方法. 这是基于create-react-app ...
- 论文阅读-Temporal Phenotyping from Longitudinal Electronic Health Records: A Graph Based Framework
- springboot+springsecurity+mybatis plus之用户授权
文章目录 前言 一.导入坐标 二.Users实体类及其数据库表的创建 三.controller,service,mapper层的实现 四.核心--编写配置文件 五.无权限界面和登录界面的实现 前言 即 ...
- k8s pod 在迁移zookeeper时出现的问题
一次迁移中出现的问题,因为要搬迁机房,集群中的节点服务器分布在两个机房,通过专线打通了,现在需要整体都迁移到其中一个机房,所以pod要进行迁移,机器资源也比较紧张,在迁移中zookeeper迁移出现问 ...