Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
H
hilo-common
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hujiebin
hilo-common
Commits
4cf89769
Commit
4cf89769
authored
Jun 25, 2023
by
hujiebin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:加密解密用
parent
6ea0c337
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
114 additions
and
0 deletions
+114
-0
context.go
mycontext/context.go
+2
-0
utils_test.go
test/utils_test.go
+27
-0
encrypt.go
utils/encrypt.go
+85
-0
No files found.
mycontext/context.go
View file @
4cf89769
...
...
@@ -31,6 +31,8 @@ const (
TOKEN
=
"token"
CARRIER
=
"carrier"
// 运营商,460 开头是中国,如:46001,46007
TIMEZONE
=
"timeZone"
// 时区 GMT+8 / GMT+8:00
InnerEncrypt
=
"innerEncrypt"
// 加密用的key,服务端内部用
)
/**
...
...
test/utils_test.go
0 → 100644
View file @
4cf89769
package
test
import
(
"git.hilo.cn/hilo-common/utils"
"testing"
)
type
UserTest
struct
{
Name
string
`json:"name"`
Age
int
`json:"age"`
}
func
TestEncryptionData
(
t
*
testing
.
T
)
{
u
:=
UserTest
{
Name
:
"jiebin"
,
Age
:
10
,
}
e
:=
utils
.
EncryptionData
(
u
,
[]
byte
(
"hilo!@#$%^&*()_+"
))
println
(
e
)
}
func
TestDecryptionData
(
t
*
testing
.
T
)
{
str
:=
"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"
//str = "xzzfwpb6ciRMyLbIajjy+trSsKysmQqCqR29vldutp4="
e
,
err
:=
utils
.
Decryption
(
str
,
[]
byte
(
"hilo!@#$%^&*()_+"
))
t
.
Logf
(
"%v-%v"
,
e
,
err
)
}
utils/encrypt.go
0 → 100644
View file @
4cf89769
package
utils
import
(
"bytes"
"crypto/aes"
"crypto/cipher"
"encoding/base64"
"encoding/json"
"errors"
)
func
EncryptionData
(
data
interface
{},
aeskey
[]
byte
)
string
{
str
,
_
:=
json
.
Marshal
(
data
)
pass
:=
str
xpass
,
err
:=
aesEncrypt
(
pass
,
aeskey
)
if
err
!=
nil
{
return
""
}
pass64
:=
base64
.
StdEncoding
.
EncodeToString
(
xpass
)
return
pass64
}
func
Encryption
(
str
string
,
aeskey
[]
byte
)
string
{
pass
:=
[]
byte
(
str
)
xpass
,
err
:=
aesEncrypt
(
pass
,
aeskey
)
if
err
!=
nil
{
return
""
}
pass64
:=
base64
.
StdEncoding
.
EncodeToString
(
xpass
)
return
pass64
}
func
aesEncrypt
(
origData
,
key
[]
byte
)
([]
byte
,
error
)
{
block
,
err
:=
aes
.
NewCipher
(
key
)
if
err
!=
nil
{
return
nil
,
err
}
blockSize
:=
block
.
BlockSize
()
origData
=
pKCS5Padding
(
origData
,
blockSize
)
blockMode
:=
cipher
.
NewCBCEncrypter
(
block
,
key
[
:
blockSize
])
crypted
:=
make
([]
byte
,
len
(
origData
))
blockMode
.
CryptBlocks
(
crypted
,
origData
)
return
crypted
,
nil
}
func
pKCS5Padding
(
ciphertext
[]
byte
,
blockSize
int
)
[]
byte
{
padding
:=
blockSize
-
len
(
ciphertext
)
%
blockSize
padtext
:=
bytes
.
Repeat
([]
byte
{
byte
(
padding
)},
padding
)
return
append
(
ciphertext
,
padtext
...
)
}
func
Decryption
(
str
string
,
aeskey
[]
byte
)
(
string
,
error
)
{
pass64
,
err
:=
base64
.
StdEncoding
.
DecodeString
(
str
)
if
err
!=
nil
{
return
""
,
err
}
xpass
,
err
:=
aesDecrypt
(
pass64
,
aeskey
)
if
err
!=
nil
{
return
""
,
err
}
return
string
(
xpass
),
nil
}
func
aesDecrypt
(
crypted
,
key
[]
byte
)
([]
byte
,
error
)
{
block
,
err
:=
aes
.
NewCipher
(
key
)
if
err
!=
nil
{
return
nil
,
err
}
blockSize
:=
block
.
BlockSize
()
if
len
(
crypted
)
%
blockSize
!=
0
{
return
nil
,
errors
.
New
(
"crypto/cipher: input not full blocks"
)
}
blockMode
:=
cipher
.
NewCBCDecrypter
(
block
,
key
[
:
blockSize
])
origData
:=
make
([]
byte
,
len
(
crypted
))
blockMode
.
CryptBlocks
(
origData
,
crypted
)
origData
=
pKCS5UnPadding
(
origData
)
return
origData
,
nil
}
func
pKCS5UnPadding
(
origData
[]
byte
)
[]
byte
{
length
:=
len
(
origData
)
unpadding
:=
int
(
origData
[
length
-
1
])
return
origData
[
:
(
length
-
unpadding
)]
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment