使用go自带的库bcrypt

  1. bcrypt是不可逆的加密算法,无法通过解密密文得到明文。
  2. bcrypt和其他对称或非对称加密方式不同的是,不是直接解密得到明文,也不是二次加密比较密文,而是把明文和存储的密文一块运算得到另一个密文,如果这两个密文相同则验证成功。

下载

go mod download golang.org/x/crypto

基础使用

package main

import (
"fmt" "golang.org/x/crypto/bcrypt"
) func main() {
password1 := "abcdef"
password2 := "aaaaaa" //加密密码
b, err := bcrypt.GenerateFromPassword([]byte(password1), bcrypt.DefaultCost)
if err != nil {
panic(err)
}
fmt.Println(string(b)) //对比密码
err = bcrypt.CompareHashAndPassword(b, []byte(password2))
if err != nil {
fmt.Println("密码不正确")
} else {
fmt.Println("密码正确")
}
} /*
$2a$10$vQwzoSLD4tFM015PigJLvehFvgyNiM/OOugw.OX9HzD9zOjvrUX2.
密码不正确
*/

最新文章

  1. echarts3 -arcgis echarts.js修改
  2. [javascript] 使用闭包编写模块
  3. JAVA的extends用法
  4. spring 与 CXF 整合 webservice 出现error “Unable to locate Spring NamespaceHandler for XML schema namespace” 总结
  5. Tomcat学习笔记 - 错误日志 - NetBeans配置tomcat出错情况总结 -- 部署错误: 启动 Tomcat 失败。-- '127.0.0.1' 不是内部或外部命令,也不是可运行的程序
  6. Linux学习之十一、环境变量的功能
  7. 使用after伪类清除浮动
  8. jQuery的ajax详解
  9. mysqldump备份表中有大字段失败的排错过程
  10. MVC+EF 序列化类型为“System.Data.Entity.DynamicProxies.__的对象时检测到循环引用
  11. 使用elasticsearch分页时报max_result_window is too large的错误解决方案
  12. 通用 正则表达式 C# (.NET)Regex 总结
  13. java httpclient post xml demo
  14. Vue购物车
  15. 如何完全卸载VS2010(亲自体验过) (转)
  16. js原生态函数中使用jQuery中的 $(this)无效的解决方法
  17. Django介绍(2)
  18. SAP函数PREPARE_STRING:提取字符串中的数字
  19. 跟厂长学PHP7内核(二):源码分析的环境与工具
  20. Java精选笔记_集合【Set(集合)接口】

热门文章

  1. Go组件库总结之协程睡眠唤醒
  2. vite + vue3 + js + xlsx 导出excel
  3. Vue3学习笔记(1)
  4. 你的ASP.NET Pages项目编译时为何总是很慢慢慢~?
  5. linux清除恶意程序流程-kdevtmpfsi清除
  6. pip修改镜像源
  7. AVL tree rotate
  8. windows服务包装程序
  9. 当前工程中typescritpt依赖包与依赖包中依赖包类型不一致如何解决
  10. Navie UI