goProject/.svn/pristine/f6/f69ea72a6e4869e6ce75ae57cbae6ff30fb992bf.svn-base

96 lines
2.5 KiB
Plaintext
Raw Normal View History

2025-01-06 16:21:36 +08:00
package securityUtil
import (
"encoding/base64"
"fmt"
"testing"
)
const (
base64Table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
// const encodeStd = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
// const encodeURL = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"
)
var coder = base64.NewEncoding(base64Table)
// 对字符串进行Base64编码
func Base64Encode(src string) string {
if src == "" {
return src
}
return base64.StdEncoding.EncodeToString([]byte(src))
}
// 对字符串进行Base64解码
func Base64Encode2(src []byte) []byte {
if len(src) == 0 {
return src
}
return []byte(base64.StdEncoding.EncodeToString(src))
}
// 对字符数组进行Base64编码
func Base64Decode(src string) (string, error) {
if src == "" {
return src, nil
}
bytes, err := coder.DecodeString(src)
if err != nil {
return "", err
}
return string(bytes), nil
}
// 对字符数组进行Base64解码
func Base64Decode2(src []byte) ([]byte, error) {
if len(src) == 0 {
return src, nil
}
return coder.DecodeString(string(src))
}
func TestEncryptAndDecrypt(t *testing.T) {
x := []byte("6d15fbbf-4913-40f5-afd1-c02effc2373a")
key := []byte("WB6aEKK5LoGpetJv")
x1, _ := AESEncrypt_CBC_Pkcs7(x, key)
x1_base64 := Base64Encode2(x1)
x1_base64_str := string(x1_base64)
fmt.Printf("Base64 of encrypted data:%s\n", x1_base64_str)
// x1_base64_str = "OoV781MTCRIEKBaWDn4NDuS3Iq1stwnORQA30Ip/eewTEzaNDQl/TgVQU09Bm7pcIP6GxGfzO7vKhRITgKCghpTi9/D+oz/GdKn8KjF/gmE="
x2_init_str, _ := Base64Decode(x1_base64_str)
x2_init := []byte(x2_init_str)
fmt.Printf("x2_init:%d\n", len(x2_init))
x2, _ := AESDecrypt_CBC_Pkcs7(x2_init, key)
fmt.Printf("Decrypted data:%s\n", string(x2))
if string(x) != string(x2) {
t.Errorf("Expected %s, but got %s", string(x), string(x2))
}
}
func TestDecrypt(t *testing.T) {
key := []byte("WB6aEKK5LoGpetJv")
x2_init_str, _ := Base64Decode("Oit72+aWraykW7i0e/q+zZ77w5yEU/5KuNpRYoJaxpw93i6zWKiFB8c6/PIedZxz")
x2_init := []byte(x2_init_str)
x2, _ := AESDecrypt_CBC_Pkcs7(x2_init, key)
fmt.Printf("Decrypted data:%s\n", string(x2))
x2_init_str, _ = Base64Decode("r0KHpfSmQ8jmx/FR4IJPOGBLTYF9lDRWbo9P8lIwekjkkU8BOO0QvfypgHZRIJWS")
x2_init = []byte(x2_init_str)
x2, _ = AESDecrypt_CBC_Pkcs7(x2_init, key)
fmt.Printf("Decrypted data:%s\n", string(x2))
x2_init_str, _ = Base64Decode("ev2P8zTEnebpBm43Dd8YlA==")
x2_init = []byte(x2_init_str)
x2, _ = AESDecrypt_CBC_Pkcs7(x2_init, key)
fmt.Printf("Decrypted data:%s\n", string(x2))
}