go php password_hash 加解密实现

注意: 下面的演示需要放到go模块中才能运行 因为有依赖go的内部包bcrypt

# 模块化项目更新
go mod tiny

main.go

import ("fmt""encoding/base64""utils"
)func main() {// go php password_hash加解密实现示例// password_hash 加密cipher, err := utils.PasswordHash("admin")if err != nil {panic(err)}fmt.Println("加密后的密文:" + cipher) //这个密文同一个密码每次都不一样//验证密码isOk := utils.PasswordVerify("admin", cipher)fmt.Println(fmt.Sprintf("验证结果: %v", isOk))//为了方便观看这里base64加密一下 取出对比是需要解密// base64加密bs64Cipher := base64.StdEncoding.EncodeToString([]byte(cipher))fmt.Println("Base64编码后的字符: " + bs64Cipher)// base64解密cipherDcodeBs, _ := base64.StdEncoding.DecodeString(bs64Cipher)fmt.Println(fmt.Sprintf("验证结果: %v", utils.PasswordVerify("admin", string(cipherDcodeBs))))/** //输出结果:加密后的密文:$2a$10$BJWO/I6WJ04m/zQMTIr5P.gvcd9.LoWjYFgz/tnfaliuDdeEennUG验证结果: trueBase64编码后的字符: JDJhJDEwJEJKV08vSTZXSjA0bS96UU1USXI1UC5ndmNkOS5Mb1dqWUZnei90bmZhbGl1RGRlRWVublVH验证结果: true*/}

utils.go

package utilsimport ("golang.org/x/crypto/bcrypt"
)// PasswordHash php的函数password_hash
func PasswordHash(password string) (string, error) {bytes, err := bcrypt.GenerateFromPassword([]byte(password), bcrypt.DefaultCost)return string(bytes), err
}// PasswordVerify php的函数password_verify
func PasswordVerify(password, hash string) bool {err := bcrypt.CompareHashAndPassword([]byte(hash), []byte(password))return err == nil
}

go php password_hash 加解密实现相关推荐

  1. 加解密基础——(对称加密、非对称加密和混合加密)

    本文对之前学习过的加解密相关知识做一简单总结,以备后用. 1. 基本概念 加密算法 通常是复杂的数学公式,这些公式确定如何将明文转化为密文的过程和规则. 密钥 是一串被加入到算法中的随机比特. 待续 ...

  2. C语言实现AES加解密

    C语言实现AES加解密 AES算法 具体代码 AES算法 (AES)RIJNDAEL算法是一个数据块长度盒密钥长度都可变的分组加密算法,其数据块长度和密钥长度都可独立地选定为大于等于128位且小于等于 ...

  3. delphi7aes加密解密与java互转_惊呆了!不改一行Java代码竟然就能轻松解决敏感信息加解密|原创

    前言 出于安全考虑,现需要将数据库的中敏感信息加密存储到数据库中,但是正常业务交互还是需要使用明文数据,所以查询返回我们还需要经过相应的解密才能返回给调用方. ❝ ps:日常开发中,我们要有一定的安全 ...

  4. boot数据加解密 spring_SpringBoot 集成 Jasypt 对数据库加密以及踩坑

    前言 密码安全是非常重要的,因此我们在代码中往往需要对密码进行加密,以此保证密码的安全 加依赖 <!-- jasypt --> <dependency><groupId& ...

  5. 一个java的DES加解密类转换成C#

    原文:一个java的DES加解密类转换成C# 一个java的des加密解密代码如下: //package com.visionsky.util;import java.security.*; //im ...

  6. 数字证书及网络加解密原理

    数字证书及网络加解密原理 层次一 报文完整性验证 小明的明文(小刚的公钥加密)-> | 密文 |---传输----> |密文 |--------->(小刚私钥解密)------> ...

  7. C#和Javascript间互转的Xxtea加解密

    很有意思的一件事情,当我想要找 Xxtea 加解密算法的时候,发现了前同事(likui318)的代码,不妨分享出来.此代码满足: 1:Xxtea支持中文: 2:支持 JS 和 C# 加解密之间的互转: ...

  8. 介绍一个很好用的Rsa加解密的.Net库 Kalix.ApiCrypto

    Rsa非对称加密技术 这个就不说了,大家上网搜索都知道,公钥加密,私钥解密.当然大家也可以自己实现.这里就懒了,就去找一个现成的库,Nuget上搜索,GitHub上搜索,发现.Net的加解密库,下载量 ...

  9. Java 进行 RSA 加解密时不得不考虑到的那些事儿

    1. 加密的系统不要具备解密的功能,否则 RSA 可能不太合适 公钥加密,私钥解密.加密的系统和解密的系统分开部署,加密的系统不应该同时具备解密的功能,这样即使黑客攻破了加密系统,他拿到的也只是一堆无 ...

最新文章

  1. 学python需要什么基础知识-学习python需要什么基础
  2. 云计算竞争愈发激烈,2019年云计算运维前景怎么样?
  3. 固件升级校准_RS网络分析仪自检自校准方法-Agitekservice
  4. 利用类的反射导入excel示例
  5. 中国空间站核心舱首次公开亮相:将于2022年前后完成在轨建造
  6. oracle 常用隐藏参数_oracle 查看隐藏参数
  7. jvm常用监控命令总结
  8. VS+VSS代码管理
  9. docker搭建aria2离线下载,rclone自动上传
  10. Vue实现登录记住密码
  11. Arduino 系列传感器应用
  12. 川大教师发自白书:一所高校就是一座衙门
  13. 2010年最具影响十大技术:移动互联…
  14. HTML网页设计制作大作业(div+css)--(四大名著 5页 )
  15. 应用pagehelper实现大屏展示自动换页
  16. phpstyudy端口被占用怎么办
  17. JSP网站开发技术两种模式介绍
  18. 微信小程序商城购物车页 二维数组怎么做
  19. 淘宝、天猫产品参数、基本信息API
  20. CRA模式下的效验标准体系,php最新含量技术

热门文章

  1. 前端设计人员必会技能 - gif动画图片制作
  2. python 基础之pymouse鼠标操作
  3. google日历的农历循环提醒
  4. Faster_RCNN配置步骤(win7+GTX TITAN X + CUDA7.5)----by jhj
  5. 浅谈 Nyquist–Shannon(奈奎斯特-香农)采样定理
  6. 子弹散射——Unity随手记(2021.2.4)
  7. 1D卷积入门:一维卷积是如何处理数字信号的
  8. 机动目标跟踪——匀加速运动CA模型(二维)
  9. 中国在6G专利上再进一步,申请量占比达五成,遥遥领先,美国的希望落空
  10. c语言话费查询系统,MTN CELL C VODACOM 8TA 指令大全