51 lines
1.1 KiB
Go
51 lines
1.1 KiB
Go
package crypto
|
||
|
||
import (
|
||
"fmt"
|
||
"testing"
|
||
|
||
"encoding/base64"
|
||
|
||
"github.com/stretchr/testify/assert"
|
||
)
|
||
|
||
func TestDecryptAES(t *testing.T) {
|
||
//key的长度必须是16、24或者32字节,分别用于选择AES-128, AES-192, or AES-256
|
||
aesKey, _ := GenerateAESKey(16)
|
||
aesKey = DefaultAESKey
|
||
|
||
plainText := []byte("cloud123456")
|
||
encryptText, err := AesEncrypt(plainText, aesKey)
|
||
if err != nil {
|
||
fmt.Println(err)
|
||
return
|
||
}
|
||
|
||
pass64 := base64.StdEncoding.EncodeToString(encryptText)
|
||
fmt.Printf("加密后:%v\n", pass64)
|
||
|
||
bytesPass, err := base64.StdEncoding.DecodeString(pass64)
|
||
if err != nil {
|
||
fmt.Println(err)
|
||
return
|
||
}
|
||
|
||
decryptText, err := AesDecrypt(bytesPass, aesKey)
|
||
if err != nil {
|
||
fmt.Println(err)
|
||
return
|
||
}
|
||
fmt.Printf("解密后:%s\n", decryptText)
|
||
assert.Equal(t, plainText, decryptText)
|
||
}
|
||
|
||
func TestGenerateAESKey_ValidLengths(t *testing.T) {
|
||
lengths := []int{16, 24, 32}
|
||
for _, length := range lengths {
|
||
key, err := GenerateAESKey(length)
|
||
assert.NoError(t, err)
|
||
assert.Equal(t, length, len(key))
|
||
t.Logf("%d : %x\n", length, string(key))
|
||
}
|
||
}
|