diff --git a/auth/util.go b/auth/util.go index 7a443b5..2bdf257 100644 --- a/auth/util.go +++ b/auth/util.go @@ -2,16 +2,17 @@ package auth import ( "dt_automate/dbpool" + "dt_automate/tool" "fmt" "log" + "strconv" + "time" machine_code "github.com/super-l/machine-code" ) -func Auth_main() map[string]string { +func auth_main() map[string]string { var auth_s dbpool.Douy_info - - fmt.Println("电脑序列号:", machine_code.Machine.BoardSerialNumber) if machine_code.Machine.BoardSerialNumber != "" { //查询sql 获取用户信息 rows, err := dbpool.QueryRows("SELECT * FROM `douy`.`douy_info` WHERE serialNumber = ?;", machine_code.Machine.BoardSerialNumber) @@ -51,3 +52,30 @@ func Auth_main() map[string]string { // log.Println(string(b)) return aa } + +// 授权状态 +func Auth() bool { + key := tool.Keyprin(auth_main()["key"]) + if key.Status == "2" { + a, _ := strconv.ParseInt(key.End_time, 10, 64) + // b, _ := strconv.ParseInt(key.Initial_time, 10, 64) // 获取的不是当前时间 + duration := time.Unix(a, 0).Sub(time.Unix(tool.Timestamp("second"), 0)) + days := int(duration / (24 * time.Hour)) //天 + hours := int(duration % (24 * time.Hour) / time.Hour) //小时 + minutes := int(duration / time.Minute % 60) //分钟 + secod := int(duration / time.Second % 60) //秒 + if days <= 0 && hours <= 0 && minutes <= 0 { + fmt.Println("电脑序列号:", machine_code.Machine.BoardSerialNumber) + log.Printf("授权已到期,剩余时间:%d天 %d小时 %d分钟 %d秒", days, hours, minutes, secod) + return false + } else { + fmt.Println("电脑序列号:", machine_code.Machine.BoardSerialNumber) + log.Printf("授权未到期,剩余时间:%d天 %d小时 %d分钟 %d秒", days, hours, minutes, secod) + return true + } + } else { + fmt.Println("电脑序列号:", machine_code.Machine.BoardSerialNumber) + log.Println("没有授权,请联系管理员") + return false + } +} diff --git a/conf/test.yaml b/conf/test.yaml index 5c4b559..7a3fa96 100644 --- a/conf/test.yaml +++ b/conf/test.yaml @@ -1,4 +1,4 @@ -cookie: vindex==46=12=0AB00=0R;supportLang=cn%2Cen;lang=cn;sessionid=200001add7a90ab1b776de85f3fabe8fdd3b;loginid=17a906828a15530283ad99a57d7c86d6;200001add7a90ab1b776de85f3fabe8fdd3b=true;abcd1234=true;login=false; +cookie: vindex==46=14=0AB00=0R;supportLang=cn%2Cen;lang=cn;sessionid=2000016ad6e6ddeb6173e9f602c697bb417f;loginid=44b72d88e78e25b5e44f27ad636b5936;2000016ad6e6ddeb6173e9f602c697bb417f=true;abcd1234=true;login=false; dtcloud_cookie: Hm_lvt_d980fb2543f406139975c7a72a5a0387=1740971050,1740974075,1741246647; ea6ee7ef65afa3fa0312817d0b12190e=787b65e4f93b05a0765ee0e7a6e2d24c; CECLOUD_OPS_SID=Tm1Sa01tUTRaakF0WW1FeE1DMDBNelUwTFdJMFl6QXROR1ppWWpWallqVXdNMlZsfGRYTmxjaTVvYkhjdVpIUmpiRzkxWkM1amIyMD0=; CECLOUD_OPS_CID=TmpObVpEbG1ORGd0WmpjNU1DMDBObUZtTFdKbVptWXRZVEJpWkRNd1pERTFOakk1fGRYTmxjaTVvYkhjdVpIUmpiRzkxWkM1amIyMD0= mysql: password: sLy1ZxZBEroGcoSv75P/xigUJ59/Yhsz1Z7896WzArcImdobrwg5+N6QEo4yT6CcpW22Y6bYy6a0ZWYAEzDaKZhOQG0odaUAv/SDP7JM7l7hH987XFJkUauaETu97Ev0kObsbS4laEiEg/+VG8fQrPuD2iRax1IWGXTKOtn+gHlyzSp016OhKOUUKKdW16OaC8AbVX9F3tVp10c2hsQNvLJl27MN5m3jXpoq9CTdcXsk15oHZVuIp3Kj9RWa8azpauiCPEKVE1KPvuJAhPYYakZBAdxGNU7Ye/YPZq68PJZHm6otEsaQxGJB1+DRNYh0oFWN9+aSYph6kAn0p5/c4g== diff --git a/img/afc2000_1.png b/img/afc2000_1.png index 304a587..cd23bb1 100644 Binary files a/img/afc2000_1.png and b/img/afc2000_1.png differ diff --git a/img/afc2000_2.png b/img/afc2000_2.png index f0aea2d..5a8c686 100644 Binary files a/img/afc2000_2.png and b/img/afc2000_2.png differ diff --git a/img/capt.png b/img/capt.png index 7f792f4..b750229 100644 Binary files a/img/capt.png and b/img/capt.png differ diff --git a/img/hw_baolj.png b/img/hw_baolj.png index 838c411..d1b235f 100644 Binary files a/img/hw_baolj.png and b/img/hw_baolj.png differ diff --git a/img/hw_fw1.png b/img/hw_fw1.png index de6b9a3..899a1c5 100644 Binary files a/img/hw_fw1.png and b/img/hw_fw1.png differ diff --git a/img/hw_tsgz.png b/img/hw_tsgz.png index 9bafee9..44cd349 100644 Binary files a/img/hw_tsgz.png and b/img/hw_tsgz.png differ diff --git a/img/zww_baolj.png b/img/zww_baolj.png index efc7eed..749202c 100644 Binary files a/img/zww_baolj.png and b/img/zww_baolj.png differ diff --git a/img/zww_fw1.png b/img/zww_fw1.png index f90eabc..5912599 100644 Binary files a/img/zww_fw1.png and b/img/zww_fw1.png differ diff --git a/img/zww_tsgz.png b/img/zww_tsgz.png index 8e79fea..da82016 100644 Binary files a/img/zww_tsgz.png and b/img/zww_tsgz.png differ diff --git a/main.go b/main.go index 989c4e8..6f9e9e5 100644 --- a/main.go +++ b/main.go @@ -4,14 +4,11 @@ import ( _ "dt_automate/attackevent" "dt_automate/auth" _ "dt_automate/method" - "dt_automate/tool" _ "dt_automate/wps" "flag" "fmt" "log" "os" - "strconv" - "time" ) var ( @@ -34,79 +31,51 @@ func main() { // log.Println(os.Args[1]) if len(os.Args) > 1 { if keyss { - key := tool.Keyprin(auth.Auth_main()["key"]) - if key.Status == "2" { - a, _ := strconv.ParseInt(key.End_time, 10, 64) - // b, _ := strconv.ParseInt(key.Initial_time, 10, 64) // 获取的不是当前时间 - duration := time.Unix(a, 0).Sub(time.Unix(tool.Timestamp("second"), 0)) - days := int(duration / (24 * time.Hour)) //天 - hours := int(duration % (24 * time.Hour) / time.Hour) //小时 - minutes := int(duration / time.Minute % 60) //分钟 - secod := int(duration / time.Second % 60) //秒 - if days <= 0 && hours <= 0 && minutes <= 0 { - log.Printf("授权已到期,剩余时间:%d天 %d小时 %d分钟 %d秒", days, hours, minutes, secod) - } else { - log.Printf("授权未到期,剩余时间:%d天 %d小时 %d分钟 %d秒", days, hours, minutes, secod) - - } - // log.Printf("剩余时间:%d天 %d小时 %d分钟 %d秒", days, hours, minutes, secod) //剩余时间 + if auth.Auth() { + // log.Println("授权状态:", true) } else { log.Println("没有授权,请联系管理员") } } if runs { - key := tool.Keyprin(auth.Auth_main()["key"]) - if key.Status == "2" { - a, _ := strconv.ParseInt(key.End_time, 10, 64) - // b, _ := strconv.ParseInt(key.Initial_time, 10, 64) // 获取的不是当前时间 - duration := time.Unix(a, 0).Sub(time.Unix(tool.Timestamp("second"), 0)) - days := int(duration / (24 * time.Hour)) //天 - hours := int(duration % (24 * time.Hour) / time.Hour) //小时 - minutes := int(duration / time.Minute % 60) //分钟 - secod := int(duration / time.Second % 60) //秒 - if days <= 0 && hours <= 0 && minutes <= 0 { - log.Printf("授权已到期,剩余时间:%d天 %d小时 %d分钟 %d秒", days, hours, minutes, secod) - } else { - log.Printf("授权未到期,剩余时间:%d天 %d小时 %d分钟 %d秒", days, hours, minutes, secod) - //可执行程序位置 - // 互联网区截图 - // method.HW_FAC1() //截取流量清洗的图片 - // method.HW_FW1() //截取防火墙的图片 - // method.HW_TSGZ() //截取态势感知的图片 - // method.HW_DTCLOUD() //截取运维中心的图片 - // method.HW_BAOLJ() //截取堡垒机的图片 + if auth.Auth() { + //可执行程序位置 + // 互联网区截图 + // method.HW_FAC1() //截取流量清洗的图片 + // method.HW_FW1() //截取防火墙的图片 + // method.HW_TSGZ() //截取态势感知的图片 + // method.HW_BAOLJ() //截取堡垒机的图片 + // method.HW_DTCLOUD() //截取运维中心的图片 + // // 政务网区截图 + // method.ZWW_FW1() //截取防火墙的图片 + // method.ZWW_TSGZ() //截取态势感知的图片 + // method.ZWWW_BAOLJ() //截取堡垒机的图片 + // method.ZWW_DTCLOUD() //截取运维中心的图片 + // 互联网区运维巡检文档生成 + // wps.HW_SYS_Word() //运维平台word文档生成 + // // 政务网区运维巡检文档生成 + // wps.ZWW_SYS_Word() //运维平台word文档生成 + // // 安全巡检文档生成 + // wps.SAFET_Word() //安全巡检文档生成 + //互联网防火墙ips事件获取 安全事件表格生成 + // attackevent.Fw_event(attackevent.HW_fw1_cookie(), "2025-03-18") //将防火墙安全事件存放到xlsx文件中 + // //政务网防火墙ips事件获取 安全事件表格生成 + // attackevent.Zww_event(attackevent.HW_zww1_cookie(), "2025-03-18") //将防火墙安全事件存放到xlsx文件中 + //nessus的csv文件生成docx报告 + // nessus.CSV_damo() + //翻译模块调用腾讯xt翻译月500万字限制 + // log.Println(wps.Translate("hello")) + // wps.Weekly_word() + //调用云平台接口 + // dtcloud.EcsList() //获取ecs列表及其详情(完成) + // dtcloud.Process() //获取单ecs进程使用情况 + // dtcloud.Memory() //获取单个ecs的memory使用情况 + // dtcloud.Cpu() ///获取单个ecs的cpu使用情况 + // dtcloud.TenantList() //获取租户列表(完成) + //获取docx文档中所有的图片 + // wps.Weekly_get_img("") + // wps.DrawHorizontalBarChart() - // // 政务网区截图 - // method.ZWW_FW1() //截取防火墙的图片 - // method.ZWW_TSGZ() //截取态势感知的图片 - // method.ZWW_DTCLOUD() //截取运维中心的图片 - // method.ZWWW_BAOLJ() //截取堡垒机的图片 - // 互联网区运维巡检文档生成 - // wps.HW_SYS_Word() //运维平台word文档生成 - // // 政务网区运维巡检文档生成 - // wps.ZWW_SYS_Word() //运维平台word文档生成 - // // 安全巡检文档生成 - // wps.SAFET_Word() //安全巡检文档生成 - //互联网防火墙ips事件获取 安全事件表格生成 - // attackevent.Fw_event(attackevent.HW_fw1_cookie(), "2025-03-18") //将防火墙安全事件存放到xlsx文件中 - //政务网防火墙ips事件获取 安全事件表格生成 - // attackevent.Zww_event(attackevent.HW_zww1_cookie(), "2025-03-18") //将防火墙安全事件存放到xlsx文件中 - //nessus的csv文件生成docx报告 - // nessus.CSV_damo() - //翻译模块调用腾讯xt翻译月500万字限制 - // log.Println(wps.Translate("hello")) - // wps.Weekly_word() - //调用云平台接口 - // dtcloud.EcsList() //获取ecs列表及其详情(完成) - // dtcloud.Process() //获取单ecs进程使用情况 - // dtcloud.Memory() //获取单个ecs的memory使用情况 - // dtcloud.Cpu() ///获取单个ecs的cpu使用情况 - // dtcloud.TenantList() //获取租户列表(完成) - //获取docx文档中所有的图片 - // wps.Weekly_get_img("") - // wps.DrawHorizontalBarChart() - - } } else { log.Println("没有授权,请联系管理员") } diff --git a/method/zww_fw1.go b/method/zww_fw1.go index 0da3677..395cd64 100644 --- a/method/zww_fw1.go +++ b/method/zww_fw1.go @@ -56,7 +56,7 @@ func ZWW_FW1() { if err := page.Locator("#login_button").Click(); err != nil { log.Fatalf("could not click button: %v", err) } - page.WaitForTimeout(1000) + page.WaitForTimeout(3000) page.Evaluate(` const now = new Date(); const year = now.getFullYear(); diff --git a/tool/key.go b/tool/key.go index 2ab876e..d60df6d 100644 --- a/tool/key.go +++ b/tool/key.go @@ -1,11 +1,11 @@ package tool /* -@Author : Uyynot -@Email : uyynot@qq.com -@Time : 2023/11/20 10:07 -@File : test.go -@Project : test +@Author : 李星辰 +@Email : 1352113079@qq.com +@Time : 2025/03/20 16:43 +@File : key.go +@Project : key @Desc : */ @@ -21,29 +21,11 @@ import ( "log" ) -// 读取私钥文件,解析出私钥对象 -func ReadParsePrivaterKey(filename string) (*rsa.PrivateKey, error) { - // 1、读取私钥文件,获取私钥字节 - // privateKeyBytes, err := os.ReadFile(filename) - privateKeyBytes := []byte(filename) - // if err != nil { - // return nil, err - // } - // 2、对私钥文件进行编码,生成加密块对象 - block, _ := pem.Decode([]byte(privateKeyBytes)) - if block == nil { - return nil, errors.New("私钥信息错误!") - } - // 3、解析DER编码的私钥,生成私钥对象 - privateKey, err := x509.ParsePKCS1PrivateKey(block.Bytes) - if err != nil { - return nil, err - } - return privateKey, nil -} +// 私钥 +var privateKey = "-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA7+q7OnKKXHyX81/mkfIhSpeRMXdVh/m5ZUlCEKMRO0BQKr/D\n9M60oYyPoqMiKY85iXp2ImGzudKuxcDOAIQRB1esP1LB58XcS9G3iFU6nFTN6hC2\nj8Izy+XDkGyPx1BDuQUj/TQGsDGittDuvRPle6GSUL24eNbCp/mp29aON38+Di4R\n8fAlTbajHRRf+stBXmJLLd7mvWkB8DEi8eV7dPQ4MzTM9bUNdClD0jiQnlUCfODj\nS+Nu2UOk/+DYgJfYPARPEvHP/Rv1tkuBYZ1J0Pfre2Sq52LdHVCMw5bbeR3z1i/l\nsD4cs9B6LZtPHZIo8ntC0PrgT3PjRaF4LHFc5QIDAQABAoIBAAz2fNlCmRE4NimT\nM+0MzRmvqMuoa/ml14uOcsBdXy/5YJt+swLGLGJSKuyZrd3a/DveXwWqi8Btjr3m\nlfrXJ+hip07glNOGEEoUcbsvB7SsrFeKQaLw1kWdC30BMJ+PSal0iqZCql3YwLbq\nAQw8R/jvGO294nq899WFmtTi+dorrhG99raYcAHNfBnokTs9U2hOmwCwxGcDnQUJ\nTO00RcX/kYMarWbrTS72zE+UwRuokdbw8pBVgDOM3c72qmQwOj+Pwo2S7n4Do55p\nyhPf1ysUJZeScJqITkyjMa0tGfERkKvpNM3HBbcwX+gG+ZAG5yFf/Of99CIXBeH7\nlHvIGL0CgYEA99tU7KIX7z3tZZxIxrYQsudhrCqkO09h+yVbwCoacnOtGpS9rxK2\nw88JP8sNhztneiMgzoncHhsaAwVEopD7Rb+78Ei8yud4/AmzoxIDM56bkGnalItt\ng3OLPR+u/dyrhIhh7ymchytgbX76nmYLwjzejWRK9kRnYMrUL3mR5ZsCgYEA98ye\njZgzsb4g3rHV/8xQ0CLZV5AUDpA46IaQIQbkoSscySDyILxDnLGiM20+y8Krx5KX\nIAQHteGVLuVkqWc3eIvl5Rd02jeIr6Or2+CPrEn6kCdxWXOtkpBudgCtcSenA0Jj\n/2tjX7q/yPvrsNyBw0zrRimbTQNfy+6WKSbLL38CgYEAiAN4qxKYh9U3/VayKTmo\nGEUZOF1+Gn4JisSJgP6Z3MzV5YxSO0zNts5aiQNovRlAQ6obSrwkavD8aUPu0jc1\nbKU3ATkpQT+dCNJaHda4ow8a1zj/lhydUFGLy1MjuHPsO6KL+66eEx8en3fbGClv\nsnustXKgIFyRTnB/2D2ibpkCgYEA9pfXyMyH1P+BsluCvHXUjevAIdUtQHjhSPRw\nBY3Yg1Jl6PkyOsVe+1YCNe8nKJpnW8lTPvcDvUnprat2Cua+WuXNN7ep/2Z4TWEx\nKzRDhY5xHHdD42KsfkfgxOlTsGFnYGT3Ijz5vVAYfqfEGlK1h2bKUx4gf/k1obmi\nEP2cAX0CgYEA094N2loQbE7DHcc88ACqUB5yl93X1LhrzyiHWanJm8yGk1c17fN/\n/yE/PiGvB+kNPFV95JhbBRjVl3bRHV4a94dbgSeuaSrfDEp08l4mSqTnp08I6Z/7\naNLqThTjLOvcEjq1MahY+dzmK46GtE2L2NiYm+CKNbEyqE55pq6mWrk=\n-----END RSA PRIVATE KEY-----" func Keyprin(b64CipherTest string) Auth_s { - pri_key, err := ReadParsePrivaterKey("-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA7+q7OnKKXHyX81/mkfIhSpeRMXdVh/m5ZUlCEKMRO0BQKr/D\n9M60oYyPoqMiKY85iXp2ImGzudKuxcDOAIQRB1esP1LB58XcS9G3iFU6nFTN6hC2\nj8Izy+XDkGyPx1BDuQUj/TQGsDGittDuvRPle6GSUL24eNbCp/mp29aON38+Di4R\n8fAlTbajHRRf+stBXmJLLd7mvWkB8DEi8eV7dPQ4MzTM9bUNdClD0jiQnlUCfODj\nS+Nu2UOk/+DYgJfYPARPEvHP/Rv1tkuBYZ1J0Pfre2Sq52LdHVCMw5bbeR3z1i/l\nsD4cs9B6LZtPHZIo8ntC0PrgT3PjRaF4LHFc5QIDAQABAoIBAAz2fNlCmRE4NimT\nM+0MzRmvqMuoa/ml14uOcsBdXy/5YJt+swLGLGJSKuyZrd3a/DveXwWqi8Btjr3m\nlfrXJ+hip07glNOGEEoUcbsvB7SsrFeKQaLw1kWdC30BMJ+PSal0iqZCql3YwLbq\nAQw8R/jvGO294nq899WFmtTi+dorrhG99raYcAHNfBnokTs9U2hOmwCwxGcDnQUJ\nTO00RcX/kYMarWbrTS72zE+UwRuokdbw8pBVgDOM3c72qmQwOj+Pwo2S7n4Do55p\nyhPf1ysUJZeScJqITkyjMa0tGfERkKvpNM3HBbcwX+gG+ZAG5yFf/Of99CIXBeH7\nlHvIGL0CgYEA99tU7KIX7z3tZZxIxrYQsudhrCqkO09h+yVbwCoacnOtGpS9rxK2\nw88JP8sNhztneiMgzoncHhsaAwVEopD7Rb+78Ei8yud4/AmzoxIDM56bkGnalItt\ng3OLPR+u/dyrhIhh7ymchytgbX76nmYLwjzejWRK9kRnYMrUL3mR5ZsCgYEA98ye\njZgzsb4g3rHV/8xQ0CLZV5AUDpA46IaQIQbkoSscySDyILxDnLGiM20+y8Krx5KX\nIAQHteGVLuVkqWc3eIvl5Rd02jeIr6Or2+CPrEn6kCdxWXOtkpBudgCtcSenA0Jj\n/2tjX7q/yPvrsNyBw0zrRimbTQNfy+6WKSbLL38CgYEAiAN4qxKYh9U3/VayKTmo\nGEUZOF1+Gn4JisSJgP6Z3MzV5YxSO0zNts5aiQNovRlAQ6obSrwkavD8aUPu0jc1\nbKU3ATkpQT+dCNJaHda4ow8a1zj/lhydUFGLy1MjuHPsO6KL+66eEx8en3fbGClv\nsnustXKgIFyRTnB/2D2ibpkCgYEA9pfXyMyH1P+BsluCvHXUjevAIdUtQHjhSPRw\nBY3Yg1Jl6PkyOsVe+1YCNe8nKJpnW8lTPvcDvUnprat2Cua+WuXNN7ep/2Z4TWEx\nKzRDhY5xHHdD42KsfkfgxOlTsGFnYGT3Ijz5vVAYfqfEGlK1h2bKUx4gf/k1obmi\nEP2cAX0CgYEA094N2loQbE7DHcc88ACqUB5yl93X1LhrzyiHWanJm8yGk1c17fN/\n/yE/PiGvB+kNPFV95JhbBRjVl3bRHV4a94dbgSeuaSrfDEp08l4mSqTnp08I6Z/7\naNLqThTjLOvcEjq1MahY+dzmK46GtE2L2NiYm+CKNbEyqE55pq6mWrk=\n-----END RSA PRIVATE KEY-----") + pri_key, err := ReadParsePrivaterKey(privateKey) if err != nil { log.Println("err:", err) } @@ -70,6 +52,7 @@ func Keyprin(b64CipherTest string) Auth_s { return auth } +// 授权信息 type Auth_s struct { SerialNumber string `json:"serialNumber"` //主板编号 Username string `json:"username"` //用户名 @@ -81,7 +64,7 @@ type Auth_s struct { // 解密 func KeyStr(b64CipherTest string) string { - pri_key, err := ReadParsePrivaterKey("-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA7+q7OnKKXHyX81/mkfIhSpeRMXdVh/m5ZUlCEKMRO0BQKr/D\n9M60oYyPoqMiKY85iXp2ImGzudKuxcDOAIQRB1esP1LB58XcS9G3iFU6nFTN6hC2\nj8Izy+XDkGyPx1BDuQUj/TQGsDGittDuvRPle6GSUL24eNbCp/mp29aON38+Di4R\n8fAlTbajHRRf+stBXmJLLd7mvWkB8DEi8eV7dPQ4MzTM9bUNdClD0jiQnlUCfODj\nS+Nu2UOk/+DYgJfYPARPEvHP/Rv1tkuBYZ1J0Pfre2Sq52LdHVCMw5bbeR3z1i/l\nsD4cs9B6LZtPHZIo8ntC0PrgT3PjRaF4LHFc5QIDAQABAoIBAAz2fNlCmRE4NimT\nM+0MzRmvqMuoa/ml14uOcsBdXy/5YJt+swLGLGJSKuyZrd3a/DveXwWqi8Btjr3m\nlfrXJ+hip07glNOGEEoUcbsvB7SsrFeKQaLw1kWdC30BMJ+PSal0iqZCql3YwLbq\nAQw8R/jvGO294nq899WFmtTi+dorrhG99raYcAHNfBnokTs9U2hOmwCwxGcDnQUJ\nTO00RcX/kYMarWbrTS72zE+UwRuokdbw8pBVgDOM3c72qmQwOj+Pwo2S7n4Do55p\nyhPf1ysUJZeScJqITkyjMa0tGfERkKvpNM3HBbcwX+gG+ZAG5yFf/Of99CIXBeH7\nlHvIGL0CgYEA99tU7KIX7z3tZZxIxrYQsudhrCqkO09h+yVbwCoacnOtGpS9rxK2\nw88JP8sNhztneiMgzoncHhsaAwVEopD7Rb+78Ei8yud4/AmzoxIDM56bkGnalItt\ng3OLPR+u/dyrhIhh7ymchytgbX76nmYLwjzejWRK9kRnYMrUL3mR5ZsCgYEA98ye\njZgzsb4g3rHV/8xQ0CLZV5AUDpA46IaQIQbkoSscySDyILxDnLGiM20+y8Krx5KX\nIAQHteGVLuVkqWc3eIvl5Rd02jeIr6Or2+CPrEn6kCdxWXOtkpBudgCtcSenA0Jj\n/2tjX7q/yPvrsNyBw0zrRimbTQNfy+6WKSbLL38CgYEAiAN4qxKYh9U3/VayKTmo\nGEUZOF1+Gn4JisSJgP6Z3MzV5YxSO0zNts5aiQNovRlAQ6obSrwkavD8aUPu0jc1\nbKU3ATkpQT+dCNJaHda4ow8a1zj/lhydUFGLy1MjuHPsO6KL+66eEx8en3fbGClv\nsnustXKgIFyRTnB/2D2ibpkCgYEA9pfXyMyH1P+BsluCvHXUjevAIdUtQHjhSPRw\nBY3Yg1Jl6PkyOsVe+1YCNe8nKJpnW8lTPvcDvUnprat2Cua+WuXNN7ep/2Z4TWEx\nKzRDhY5xHHdD42KsfkfgxOlTsGFnYGT3Ijz5vVAYfqfEGlK1h2bKUx4gf/k1obmi\nEP2cAX0CgYEA094N2loQbE7DHcc88ACqUB5yl93X1LhrzyiHWanJm8yGk1c17fN/\n/yE/PiGvB+kNPFV95JhbBRjVl3bRHV4a94dbgSeuaSrfDEp08l4mSqTnp08I6Z/7\naNLqThTjLOvcEjq1MahY+dzmK46GtE2L2NiYm+CKNbEyqE55pq6mWrk=\n-----END RSA PRIVATE KEY-----") + pri_key, err := ReadParsePrivaterKey(privateKey) if err != nil { log.Println("err:", err) } @@ -99,3 +82,24 @@ func KeyStr(b64CipherTest string) string { } return string(decryptedPlainText) } + +// 读取私钥文件,解析出私钥对象 +func ReadParsePrivaterKey(filename string) (*rsa.PrivateKey, error) { + // 1、读取私钥文件,获取私钥字节 + // privateKeyBytes, err := os.ReadFile(filename) + privateKeyBytes := []byte(filename) + // if err != nil { + // return nil, err + // } + // 2、对私钥文件进行编码,生成加密块对象 + block, _ := pem.Decode([]byte(privateKeyBytes)) + if block == nil { + return nil, errors.New("私钥信息错误!") + } + // 3、解析DER编码的私钥,生成私钥对象 + privateKey, err := x509.ParsePKCS1PrivateKey(block.Bytes) + if err != nil { + return nil, err + } + return privateKey, nil +} diff --git a/互联网防火墙安全事件20250320.xlsx b/互联网防火墙安全事件20250320.xlsx new file mode 100644 index 0000000..bfa11dd Binary files /dev/null and b/互联网防火墙安全事件20250320.xlsx differ diff --git a/大同信创云平台安全运维日报20250320.docx b/大同信创云平台安全运维日报20250320.docx new file mode 100644 index 0000000..11d64e6 Binary files /dev/null and b/大同信创云平台安全运维日报20250320.docx differ