ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

golang模拟登录本校

2021-12-08 15:03:36  阅读:256  来源: 互联网

标签:加密 登录 err 本校 nil base64 golang http reqLogin2


登录网站的表单页面网址为:http://jwxt.wit.edu.cn/jsxsd/

通过golang提供的http请求包发送请求初次获取cookie

    clientLogin1 := &http.Client{}
	reqLogin1, err := http.NewRequest(method, urlLogin1, nil)
	if err != nil {
		fmt.Println(err)
		return ""
	}
	resLogin1, err := clientLogin1.Do(reqLogin1)
	if err != nil {
		fmt.Println(err)
		return ""
	}
	defer resLogin1.Body.Close()
	cookie := resLogin1.Cookies()

通过fidder抓包得知,表单提交数据的网址为:http://jwxt.wit.edu.cn/jsxsd/xk/LoginToXk

并对提交的数据进行了加密,通过查看页面源代码得知加密方式为base64加密

使用golang提供base64加密包对数据进行加密

    encodeduser := base64.StdEncoding.EncodeToString([]byte(username))
	encodedpass := base64.StdEncoding.EncodeToString([]byte(password))
	encoded := encodeduser + "%%%" + encodedpass

再次发送请求并携带数据,使初次获取的cookie生效

    reqLogin2, err := http.NewRequest("POST", urlLogin2, payload)
	if err != nil {
		fmt.Println(err)
		return ""
	}
	reqLogin2.Header.Add("Content-Type", "application/x-www-form-urlencoded")
	reqLogin2.Header.Add("Cookie", cookies)
	resLogin2, err := clientLogin2.Do(reqLogin2)

完成模拟登录

标签:加密,登录,err,本校,nil,base64,golang,http,reqLogin2
来源: https://blog.csdn.net/w1157673482/article/details/121791168

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有