golang MD5加密和MD5盐值加密

1.MD5加密方式

1)MD5包:"crypto/md5"

2)实现

func genMd5(code string) string{
	//c1 := md5.Sum([]byte(code)) //返回[16]byte数组

	Md5 := md5.New()
	_, _ = io.WriteString(Md5, code)
	return hex.EncodeToString(Md5.Sum(nil))
}

2. MD5盐值加密

 我们可以使用github上别人写好的一个库:https://github.com/anaskhan96/go-password-encoder

1)导入包:

go get github.com/anaskhan96/go-password-encoder

2)具体使用方式:

package main

import (
	"crypto/md5"
	"fmt"
	"github.com/anaskhan96/go-password-encoder"
)

func main() {
	// 方式一:使用默认选项
	salt, encodedPwd := password.Encode("generic password", nil)
	check := password.Verify("generic password", salt, encodedPwd, nil)
	fmt.Println(check) // true

	// 方式二:使用自定义选项
	options := &password.Options{10, 10000, 50, md5.New}
	salt, encodedPwd = password.Encode("generic password", options)
	check = password.Verify("generic password", salt, encodedPwd, options)
	fmt.Println(check) // true
}

Options结构用于启用自定义选项: 

type Options struct {
	SaltLen      int
	Iterations   int
	KeyLen       int
	HashFunction func() hash.Hash
}
  • SaltLen:用户生成的长度,默认256
  • Iterations: PBKDF2函数中的迭代次数,默认10000
  • KeyLen:BKDF2函数中编码密钥的长度,默认512
  • HashFunction: 使用的哈希算法,默认sha512

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值