crypto/bcrypt——Golang密码加密
一般来说,密码是不能明文储存在数据库里面的,所以有的系统会将密码进行 md5或 sha1Hash之后存入数据库,这种方案可能会被字典攻击,因此,有了加盐Hash,即将密码和盐组合之后Hash保存到数据库,这种方法基本防止了字典攻击。而在Golang中,Golang提供了一种更为安全的加密方式——crypto/bcrypt,使用这种方式进行加密的可以使得同一密码每次生成的Hash都是不一样的,...
一般来说,密码是不能明文储存在数据库里面的,所以有的系统会将密码进行 md5或 sha1Hash之后存入数据库,这种方案可能会被字典攻击,因此,有了加盐Hash,即将密码和盐组合之后Hash保存到数据库,这种方法基本防止了字典攻击。而在Golang中,Golang提供了一种更为安全的加密方式——crypto/bcrypt,使用这种方式进行加密的可以使得同一密码每次生成的Hash都是不一样的,...
最近在写一个Gin和Gorm的项目,里面有用到分页操作,便自己写了一个分页的工具类。分页请求格式:xxx?page=1&limit=10utils/Pagination.gopackage utils import ( "github.com/gin-gonic/gin" "github.com/spf13/cast" ...
大多数写Golang的时候,都会遇到类型转换的问题,尽管Golang提供了类型转换的方法,但是,Golang规定对所有错误都必须处理的规定就让人很蛋疼,比如我只是想把 "123"这个字符串转换成 int类型的时候,我可能需要写下以下代码:str := "123" number,err := strconv.Atoi(str) if err != nil...
在学Golang之前,我一直写的是Java,而在Java中,闭包我几乎没用过,虽然好像Java也有闭包。对于我这样的一个前Java程序员来说,理解闭包有点困难,因此我换一种思路,企图用面向对象的思维去理解闭包,在JS中,闭包甚至可以实现面向对象。当然这种理解方式可能有失偏颇,属于我的个人理解,仅供参考。本文将以Golang官网的斐波那契示例为例,足够经典,也容易理解。什么是闭包这是我们首先提...