diff --git a/README.md b/README.md index a9605d19..774069ca 100644 --- a/README.md +++ b/README.md @@ -390,6 +390,20 @@ print("run[CQ:image,file="+j["img"]+"]") - [x] 六十四卦用yyy解密xxx + +
+ base天城文加解密 + + `import _ "github.com/FloatTech/ZeroBot-Plugin/plugin/baseamasiro"` + + - [x] 天城文加密xxx + + - [x] 天城文解密xxx + + - [x] 天城文用yyy加密xxx + + - [x] 天城文用yyy解密xxx +
bilibili diff --git a/go.mod b/go.mod index ae4b2f8d..418ed663 100644 --- a/go.mod +++ b/go.mod @@ -4,12 +4,12 @@ go 1.19 require ( github.com/Coloured-glaze/gg v1.3.4 - github.com/FloatTech/AnimeAPI v1.5.1-0.20220921020517-f4076c11486c - github.com/FloatTech/floatbox v0.0.0-20220917062226-31fb3ec4b135 + github.com/FloatTech/AnimeAPI v1.5.1-0.20221003151003-71d7e86c895f + github.com/FloatTech/floatbox v0.0.0-20221003150509-1eb268ad10ff github.com/FloatTech/sqlite v0.4.0 github.com/FloatTech/ttl v0.0.0-20220715042055-15612be72f5b github.com/FloatTech/zbpctrl v1.5.2-0.20220921013146-40d64bc7799c - github.com/FloatTech/zbputils v1.5.1-0.20220922024334-73bc7af39d08 + github.com/FloatTech/zbputils v1.5.1-0.20221003150718-106abe37a694 github.com/RomiChan/syncx v0.0.0-20220404072119-d7ea0ae15a4c github.com/antchfx/htmlquery v1.2.5 github.com/corona10/goimagehash v1.1.0 @@ -17,10 +17,9 @@ require ( github.com/fumiama/cron v1.3.0 github.com/fumiama/go-base16384 v1.6.1 github.com/fumiama/go-registry v0.1.6 - github.com/fumiama/gofastTEA v0.0.10 github.com/fumiama/gotracemoe v0.0.3 github.com/fumiama/sqlite3 v1.14.6 - github.com/fumiama/unibase2n v0.0.0-20221001124937-1eec9a152907 + github.com/fumiama/unibase2n v0.0.0-20221003115227-e7db987de949 github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 github.com/jinzhu/gorm v1.9.16 github.com/jozsefsallai/gophersauce v1.0.1 @@ -44,6 +43,7 @@ require ( github.com/ericpauley/go-quantize v0.0.0-20200331213906-ae555eb2afa4 // indirect github.com/faiface/beep v1.1.0 // indirect github.com/fsnotify/fsnotify v1.4.9 // indirect + github.com/fumiama/gofastTEA v0.0.10 // indirect github.com/gabriel-vasile/mimetype v1.0.4 // indirect github.com/go-ole/go-ole v1.2.6 // indirect github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect diff --git a/go.sum b/go.sum index 3d356f9a..c098eacd 100644 --- a/go.sum +++ b/go.sum @@ -2,18 +2,18 @@ github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym github.com/Coloured-glaze/gg v1.3.4 h1:l31zIF/HaVwkzjrj+A56RGQoSKyKuR1IWtIrqXGFStI= github.com/Coloured-glaze/gg v1.3.4/go.mod h1:Ih5NLNNDHOy3RJbB0EPqGTreIzq/H02TGThIagh8HJg= github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= -github.com/FloatTech/AnimeAPI v1.5.1-0.20220921020517-f4076c11486c h1:L4mAdwNIqFi+tas13k1yJV9CyNXncTR8qvZ42sBPMxQ= -github.com/FloatTech/AnimeAPI v1.5.1-0.20220921020517-f4076c11486c/go.mod h1:8tw2qmRQW2bmfAU34bef84EPYZOkSrtYtgPkNdWuxVE= -github.com/FloatTech/floatbox v0.0.0-20220917062226-31fb3ec4b135 h1:HJZRF10i/vszUsZXJ+13oz+y1DTgCW453SFTeJvjjyo= -github.com/FloatTech/floatbox v0.0.0-20220917062226-31fb3ec4b135/go.mod h1:VNqP+XqXDOEArudsDVYQJfZd5bO6Sj4l4oRa8DM8cAw= +github.com/FloatTech/AnimeAPI v1.5.1-0.20221003151003-71d7e86c895f h1:Cei6vTDTGs1ap2o3ufI2I2Tgkz97bKKbVUrFOb4l9gk= +github.com/FloatTech/AnimeAPI v1.5.1-0.20221003151003-71d7e86c895f/go.mod h1:a8bKmB4WUKlC/3IT6CjB7bpsb+POjFGf7HhndWmvHX8= +github.com/FloatTech/floatbox v0.0.0-20221003150509-1eb268ad10ff h1:eWWdYIfpu91bdvFcdLL27w8O8v3u0O6iph632FAqXww= +github.com/FloatTech/floatbox v0.0.0-20221003150509-1eb268ad10ff/go.mod h1:4UDl6E/I2HqAqRnKdsxxfO28fkqGo3CzFOP2BhyI6ag= github.com/FloatTech/sqlite v0.4.0 h1:fvQ1vc7fw99jYXccs5KItMluy7QL1t6NxbkH7aN1F4g= github.com/FloatTech/sqlite v0.4.0/go.mod h1:i33d92OtR8jcp5fBUvQtospf27+MkfUxnGwnZ95E/dA= github.com/FloatTech/ttl v0.0.0-20220715042055-15612be72f5b h1:tvciXWq2nuvTbFeJGLDNIdRX3BI546D3O7k7vrVueZw= github.com/FloatTech/ttl v0.0.0-20220715042055-15612be72f5b/go.mod h1:fHZFWGquNXuHttu9dUYoKuNbm3dzLETnIOnm1muSfDs= github.com/FloatTech/zbpctrl v1.5.2-0.20220921013146-40d64bc7799c h1:zYcKvMbwQeifSQg0LnxhmCdyP3mb7ZqS6rjt68jbukw= github.com/FloatTech/zbpctrl v1.5.2-0.20220921013146-40d64bc7799c/go.mod h1:+2mGs9vUWJsvfcbodcmFegqOKEqHnLwopF1jTLVs/gU= -github.com/FloatTech/zbputils v1.5.1-0.20220922024334-73bc7af39d08 h1:VoqFAE1Igk5DjKe33wQLWLF64LC745Uam+gdCEEaaHE= -github.com/FloatTech/zbputils v1.5.1-0.20220922024334-73bc7af39d08/go.mod h1:C+PfyuEOxooTDb1S/SoptP3K+pTCXbUvC/AxXb3Q2yk= +github.com/FloatTech/zbputils v1.5.1-0.20221003150718-106abe37a694 h1:5Mrqp7vWfGHa2UaGPlEtEO90oQGZqsLz64OKax9BTKE= +github.com/FloatTech/zbputils v1.5.1-0.20221003150718-106abe37a694/go.mod h1:G2moRET7IGbq4ME7lzqzx4FxVzU0NvtYTf3Q6FyYEUw= github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc= github.com/RomiChan/syncx v0.0.0-20220404072119-d7ea0ae15a4c h1:cNPOdTNiVwxLpROLjXCgbIPvdkE+BwvxDvgmdYmWx6Q= github.com/RomiChan/syncx v0.0.0-20220404072119-d7ea0ae15a4c/go.mod h1:KqZzu7slNKROh3TSYEH/IUMG6f4M+1qubZ5e52QypsE= @@ -58,8 +58,8 @@ github.com/fumiama/gotracemoe v0.0.3 h1:iI5EbE9A3UUbfukG6+/soYPjp1S31eCNYf4tw7s6 github.com/fumiama/gotracemoe v0.0.3/go.mod h1:tyqahdUzHf0bQIAVY/GYmDWvYYe5ik1ZbhnGYh+zl40= github.com/fumiama/sqlite3 v1.14.6 h1:+e+iygyiDXQJVi7xeXIviBvR7hAc5y20WA9hRwfKn10= github.com/fumiama/sqlite3 v1.14.6/go.mod h1:Xx9a2/OtHuy9pBjow0N+bE/RhNeZ7zZz5xh25vqbA5A= -github.com/fumiama/unibase2n v0.0.0-20221001124937-1eec9a152907 h1:x+wRdSK0Hx9X+pBxB7jN/hnir55Rbh3KJ9eiGzIb4GY= -github.com/fumiama/unibase2n v0.0.0-20221001124937-1eec9a152907/go.mod h1:lEaZsT4FRSqcjnQ5q8y+mkenkzR/r1D3BJmfdp0vqDg= +github.com/fumiama/unibase2n v0.0.0-20221003115227-e7db987de949 h1:VAzR8aoS2SCEBmRF9rqCPyXgXoP8mZ1viNL4mLWUg0Q= +github.com/fumiama/unibase2n v0.0.0-20221003115227-e7db987de949/go.mod h1:lEaZsT4FRSqcjnQ5q8y+mkenkzR/r1D3BJmfdp0vqDg= github.com/gabriel-vasile/mimetype v1.0.4 h1:uBejfH8l3/2f+5vjl1e4xIaSyNEhRBZ5N/ij7ohpNd8= github.com/gabriel-vasile/mimetype v1.0.4/go.mod h1:6CDPel/o/3/s4+bp6kIbsWATq8pmgOisOPG40CJa6To= github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg= diff --git a/main.go b/main.go index e7977393..1e525851 100644 --- a/main.go +++ b/main.go @@ -64,6 +64,7 @@ import ( _ "github.com/FloatTech/ZeroBot-Plugin/plugin/b14" // base16384加解密 _ "github.com/FloatTech/ZeroBot-Plugin/plugin/baidu" // 百度一下 _ "github.com/FloatTech/ZeroBot-Plugin/plugin/base64gua" // base64卦加解密 + _ "github.com/FloatTech/ZeroBot-Plugin/plugin/baseamasiro" // base天城文加解密 _ "github.com/FloatTech/ZeroBot-Plugin/plugin/bilibili" // b站相关 _ "github.com/FloatTech/ZeroBot-Plugin/plugin/book_review" // 哀伤雪刃吧推书记录 _ "github.com/FloatTech/ZeroBot-Plugin/plugin/cangtoushi" // 藏头诗 diff --git a/plugin/b14/main.go b/plugin/b14/main.go index 819bf49d..63a2e5f9 100644 --- a/plugin/b14/main.go +++ b/plugin/b14/main.go @@ -2,12 +2,10 @@ package b14coder import ( - "unsafe" - + "github.com/FloatTech/floatbox/crypto" ctrl "github.com/FloatTech/zbpctrl" "github.com/FloatTech/zbputils/control" base14 "github.com/fumiama/go-base16384" - tea "github.com/fumiama/gofastTEA" zero "github.com/wdvxdr1123/ZeroBot" "github.com/wdvxdr1123/ZeroBot/message" "github.com/wdvxdr1123/ZeroBot/utils/helper" @@ -42,7 +40,7 @@ func init() { en.OnRegex(`^用(.+)加密\s*(.+)$`).SetBlock(true). Handle(func(ctx *zero.Ctx) { key, str := ctx.State["regex_matched"].([]string)[1], ctx.State["regex_matched"].([]string)[2] - t := getea(key) + t := crypto.GetTEA(key) es, err := base14.UTF16BE2UTF8(base14.Encode(t.Encrypt(helper.StringToBytes(str)))) if err == nil { ctx.SendChain(message.Text(helper.BytesToString(es))) @@ -53,7 +51,7 @@ func init() { en.OnRegex(`^用(.+)解密\s*([一-踀]+[㴁-㴆]?)$`).SetBlock(true). Handle(func(ctx *zero.Ctx) { key, str := ctx.State["regex_matched"].([]string)[1], ctx.State["regex_matched"].([]string)[2] - t := getea(key) + t := crypto.GetTEA(key) es, err := base14.UTF82UTF16BE(helper.StringToBytes(str)) if err == nil { ctx.SendChain(message.Text(helper.BytesToString(t.Decrypt(base14.Decode(es))))) @@ -62,15 +60,3 @@ func init() { } }) } - -func getea(key string) tea.TEA { - kr := []rune(key) - if len(kr) > 4 { - kr = kr[:4] - } else { - for len(kr) < 4 { - kr = append(kr, rune(4-len(kr))) - } - } - return *(*tea.TEA)(*(*unsafe.Pointer)(unsafe.Pointer(&kr))) -} diff --git a/plugin/base64gua/main.go b/plugin/base64gua/main.go index adbc1cd7..9898437e 100644 --- a/plugin/base64gua/main.go +++ b/plugin/base64gua/main.go @@ -2,11 +2,9 @@ package base64gua import ( - "unsafe" - + "github.com/FloatTech/floatbox/crypto" ctrl "github.com/FloatTech/zbpctrl" "github.com/FloatTech/zbputils/control" - tea "github.com/fumiama/gofastTEA" "github.com/fumiama/unibase2n" zero "github.com/wdvxdr1123/ZeroBot" "github.com/wdvxdr1123/ZeroBot/message" @@ -42,7 +40,7 @@ func init() { en.OnRegex(`^六十四卦用(.+)加密\s*(.+)$`).SetBlock(true). Handle(func(ctx *zero.Ctx) { key, str := ctx.State["regex_matched"].([]string)[1], ctx.State["regex_matched"].([]string)[2] - t := getea(key) + t := crypto.GetTEA(key) es, err := unibase2n.UTF16BE2UTF8(unibase2n.Base64Gua.Encode(t.Encrypt(helper.StringToBytes(str)))) if err == nil { ctx.SendChain(message.Text(helper.BytesToString(es))) @@ -53,7 +51,7 @@ func init() { en.OnRegex(`^六十四卦用(.+)解密\s*([䷀-䷿]+[☰☱]?)$`).SetBlock(true). Handle(func(ctx *zero.Ctx) { key, str := ctx.State["regex_matched"].([]string)[1], ctx.State["regex_matched"].([]string)[2] - t := getea(key) + t := crypto.GetTEA(key) es, err := unibase2n.UTF82UTF16BE(helper.StringToBytes(str)) if err == nil { ctx.SendChain(message.Text(helper.BytesToString(t.Decrypt(unibase2n.Base64Gua.Decode(es))))) @@ -62,15 +60,3 @@ func init() { } }) } - -func getea(key string) tea.TEA { - kr := []rune(key) - if len(kr) > 4 { - kr = kr[:4] - } else { - for len(kr) < 4 { - kr = append(kr, rune(4-len(kr))) - } - } - return *(*tea.TEA)(*(*unsafe.Pointer)(unsafe.Pointer(&kr))) -} diff --git a/plugin/baseamasiro/main.go b/plugin/baseamasiro/main.go new file mode 100644 index 00000000..055b549c --- /dev/null +++ b/plugin/baseamasiro/main.go @@ -0,0 +1,62 @@ +// Package baseamasiro base天城文 与 tea 加解密 +package baseamasiro + +import ( + "github.com/FloatTech/floatbox/crypto" + ctrl "github.com/FloatTech/zbpctrl" + "github.com/FloatTech/zbputils/control" + "github.com/fumiama/unibase2n" + zero "github.com/wdvxdr1123/ZeroBot" + "github.com/wdvxdr1123/ZeroBot/message" + "github.com/wdvxdr1123/ZeroBot/utils/helper" +) + +func init() { + en := control.Register("base64gua", &ctrl.Options[*zero.Ctx]{ + DisableOnDefault: false, + Help: "base天城文加解密\n" + + "- 天城文加密xxx\n- 天城文解密xxx\n- 天城文用yyy加密xxx\n- 天城文用yyy解密xxx", + }) + en.OnRegex(`^天城文加密\s*(.+)$`).SetBlock(true). + Handle(func(ctx *zero.Ctx) { + str := ctx.State["regex_matched"].([]string)[1] + es := unibase2n.BaseDevanagari.EncodeString(str) + if es != "" { + ctx.SendChain(message.Text(es)) + } else { + ctx.SendChain(message.Text("加密失败!")) + } + }) + en.OnRegex(`^天城文解密\s*([ऀ-ॿ]+[০-৫]?)$`).SetBlock(true). + Handle(func(ctx *zero.Ctx) { + str := ctx.State["regex_matched"].([]string)[1] + es := unibase2n.BaseDevanagari.DecodeString(str) + if es != "" { + ctx.SendChain(message.Text(es)) + } else { + ctx.SendChain(message.Text("解密失败!")) + } + }) + en.OnRegex(`^天城文用(.+)加密\s*(.+)$`).SetBlock(true). + Handle(func(ctx *zero.Ctx) { + key, str := ctx.State["regex_matched"].([]string)[1], ctx.State["regex_matched"].([]string)[2] + t := crypto.GetTEA(key) + es, err := unibase2n.UTF16BE2UTF8(unibase2n.BaseDevanagari.Encode(t.Encrypt(helper.StringToBytes(str)))) + if err == nil { + ctx.SendChain(message.Text(helper.BytesToString(es))) + } else { + ctx.SendChain(message.Text("加密失败!")) + } + }) + en.OnRegex(`^天城文用(.+)解密\s*([ऀ-ॿ]+[০-৫]?)$`).SetBlock(true). + Handle(func(ctx *zero.Ctx) { + key, str := ctx.State["regex_matched"].([]string)[1], ctx.State["regex_matched"].([]string)[2] + t := crypto.GetTEA(key) + es, err := unibase2n.UTF82UTF16BE(helper.StringToBytes(str)) + if err == nil { + ctx.SendChain(message.Text(helper.BytesToString(t.Decrypt(unibase2n.BaseDevanagari.Decode(es))))) + } else { + ctx.SendChain(message.Text("解密失败!")) + } + }) +}