不同语言的AES加密解密登录实现,aes加密解密登录
不同语言的AES加密解密登录实现,aes加密解密登录
【背景】一般情况下,前台都是用js等语言来写的,后台语言各有各的实现,相同语言下的加密解密比较简单不再赘述,这里说说不同语言的加密解密
【前端】JavaScript 加密 使用Crypto-Js加密库
【后端】golang 解密
func getLoginStru(r *http.Request, t *Ticket) (ls *LoginStru, err error) { ls = &LoginStru{} data, err := getLoginStructFromReq(r) if err != nil { return } userName := data.UserName passWord := data.PassWord if userName == "" || passWord == "" { log.Error("username or password is null") err = ErrGetUP return } if data.Key != "" && data.Iv != "" { ua, err := Base64AndAESAndCBCAndPKCS7Decrypter(data.UserName, data.Key, data.Iv) if err != nil { log.Error("username decrypt error") return nil, errors.New("username decrypt error") } userName = *ua pw, err := Base64AndAESAndCBCAndPKCS7Decrypter(data.PassWord, data.Key, data.Iv) if err != nil { log.Error("password decrypt error") return nil, errors.New("password decrypt error") } passWord = *pw }import ( "encoding/base64" )
func Base64AndAESAndCBCAndPKCS7Decrypter(cipherText, key, iv string) (*string, error) { bs, err := base64.StdEncoding.DecodeString(cipherText) if err != nil { return nil, err } textBs, err := AESAndCBCAndPKCS7Decrypter(bs, []byte(key), []byte(iv)) if err != nil { return nil, err } text := string(textBs) return &text, err }
评论暂时关闭