# GoLoginHust
## 简介
一个基于Go的HustPass登录库,用于登录华科的统一认证登录系统,可用于校内绝大多数平台。
代码参考了[@naivekun](https://github.com/naivekun)的使用python编写的[登录库](https://github.com/naivekun/libhustpass)。
## 使用方法
这个库使用了Golang的新的包管理方式,请确保你的Golang版本高于1.12,并在代码中使用import导入本库之后,使用go mod tidy更新依赖,**而不是使用go get**。
代码示例
```
package main
import (
"fmt"
"io/ioutil"
"net/http"
"net/url"
"strings"
"github.com/black-binary/gologinhust"
)
func main() {
client, _ := gologinhust.GetLoginClient("你的用户名", "你的密码", "http://hubs.hust.edu.cn/hustpass.action")
postParam := url.Values{}
postParam.Add("start", "2020-01-01")
postParam.Add("end", "2020-03-01")
req, _ := http.NewRequest("POST", "http://hubs.hust.edu.cn/aam/score/CourseInquiry_ido.action", strings.NewReader(postParam.Encode()))
req.Header.Add("X-Requested-With", "XMLHttpRequest")
req.Header.Add("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
resp, _ := client.Do(req)
body, _ := ioutil.ReadAll(resp.Body)
fmt.Printf(string(body))
}
```
GetLoginClient函数将尝试登录该url,函数将返回一个http.Client,这个client已经包含登录该平台所需的cookie。示例代码调用了课程表接口,获取了1月1日至1月3日的课程表。注意在访问一些特定接口的时候,可能需要先抓包然后设置对应http头部字段。
## 实现细节
HustPass更新后由原来的RSA改为使用变形的DES三重加密,三个密钥分别是"1", "2", "3",对pc1变换矩阵进行了修改,其他基本一致。参见[naivekun实现的登录库](https://github.com/naivekun/libhustpass) (wtf, 这样不是安全性更低了吗??)。代码中的sbdes库是在go的cipher密码学支持库中的des中复制出来然后修改的。
GetLoginClient将使用GET访问目标URL,并跟随重定向到达HustPass登录界面。然后使用输入的用户名和密码登录。注意Go的HTTP库重定向跟随支持有一些问题,校内[一些平台](http://one.hust.edu.cn)使用http-equiv="refresh"的方法进行重定向,可能导致重定向跟随失败从而无法正确登录。解决方法是使用完整的[主页路径](http://one.hust.edu.cn/dcp/index.jsp)进行登录。
## 许可
GNU GPLv3
没有合适的资源?快使用搜索试试~ 我知道了~
一个基于Go的HustPass登录库,用于登录华科的统一认证登录系统,可用于校内绝大多数平台。.zip
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共13个文件
go:10个
mod:1个
md:1个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
需积分: 5 0 下载量 76 浏览量
2024-05-23
17:10:00
上传
评论
收藏 21KB ZIP 举报
温馨提示
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
资源推荐
资源详情
资源评论
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![thumb](https://img-home.csdnimg.cn/images/20210720083646.png)
![thumb](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 13 条
- 1
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/d7864c98224046ec9a7f43fa6207c84e_qq_51320133.jpg!1)
生瓜蛋子
- 粉丝: 3828
- 资源: 5775
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)