设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 重新 试卷 创业者
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

Golang不到100行实现一套灵活的JWT库(2)

发布时间:2019-10-18 20:16 所属栏目:21 来源:Golang全栈
导读:下面我们就去实现一个最简单的 RS256 算法,新建一个 bs.go 文件,内容如下: packagejwt import( crypto/sha256 encoding/base64 fmt ) funcNewRS256()IJwt{ jwtM:=Jwt{} //Sha256 jwtM.SetSignFunc(func(bytes[]b

下面我们就去实现一个最简单的 RS256 算法,新建一个 bs.go 文件,内容如下:

  1. package jwt 
  2.  
  3. import ( 
  4.     "crypto/sha256" 
  5.     "encoding/base64" 
  6.     "fmt" 
  7.  
  8. func NewRS256() IJwt { 
  9.  
  10.     jwtM := Jwt{} 
  11.  
  12.     //Sha256 
  13.     jwtM.SetSignFunc(func(bytes []byte) string { 
  14.         h := sha256.New() 
  15.         h.Write(bytes) 
  16.         return fmt.Sprintf("%x",h.Sum(nil)) 
  17.     }) 
  18.  
  19.     //base64 
  20.     jwtM.SetEncodeFunc(func(bytes []byte) string { 
  21.         return base64.URLEncoding.EncodeToString(bytes) 
  22.     }) 
  23.  
  24.     return &jwtM 

我这里 header 和 payload 采用 base64 去加密,签名采用 sha256 当然这种算法生成的 JWT 很容易被人串改模仿,不能用于生产的。

到这里我们的分享也就结束了,赶快去实现你的 JWT 算法吧,有任何疑问欢迎留言。

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读