From 58ddf2365aa4d2a19a50824596a715a75ae5b3f9 Mon Sep 17 00:00:00 2001 From: lensfrex Date: Sat, 12 Nov 2022 16:12:32 +0800 Subject: [PATCH] backup2 --- app/cmd/main.go | 36 +++++++++++++++++++++++++++++++++ app/encode/encode.go | 47 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 app/encode/encode.go diff --git a/app/cmd/main.go b/app/cmd/main.go index 7905807..e4c25ec 100644 --- a/app/cmd/main.go +++ b/app/cmd/main.go @@ -1,5 +1,41 @@ package main +import ( + "fmt" +) + func main() { + a := "123456" + b := true + + fmt.Println(s(a, b)) +} + +func s(origin string, b bool) (result []rune) { + data := []rune(origin) + dataLen := len(origin) + + resultLen := (dataLen / 4) + 1 + if b { + result = make([]rune, resultLen+1) + result[resultLen] = rune(resultLen) + } else { + result = make([]rune, resultLen) + } + + for i := 0; i < dataLen; i += 4 { + result[i>>2] = + getCharAt(data, i, dataLen) | getCharAt(data, i+1, dataLen)<<8 | getCharAt(data, i+2, dataLen)<<16 | + getCharAt(data, i+3, dataLen)<<24 + } + + return result +} +func getCharAt(str []rune, index int, length int) rune { + if index >= length { + return 0 + } else { + return str[index] + } } diff --git a/app/encode/encode.go b/app/encode/encode.go new file mode 100644 index 0000000..95dce10 --- /dev/null +++ b/app/encode/encode.go @@ -0,0 +1,47 @@ +package encode + +func XEncode(str string, key string) string { + +} + +func s(origin string, b bool) (result []rune) { + data := []rune(origin) + dataLen := len(origin) + + resultLen := (dataLen / 4) + 1 + if b { + result = make([]rune, resultLen+1) + result[resultLen] = rune(resultLen) + } else { + result = make([]rune, resultLen) + } + + for i := 0; i < dataLen; i += 4 { + result[i>>2] = get(data, i, dataLen) | get(data, i+1, dataLen)<<8 | get(data, i+2, dataLen)<<16 | get(data, i+3, dataLen)<<24 + } + + return result +} + +func l(a string, b bool) (result []rune) { + d := len(a) + data := []rune(a) + + c := d - 1<<2 + + if b { + m := int(data[d-1]) + if m < c-3 || m > c { + return nil + } + c = m + } +} + +func get(str []rune, index int, length int) rune { + if index >= length { + return 0 + } else { + return str[index] + } +}