Files
2025-11-03 23:08:53 +08:00

95 lines
2.0 KiB
Go

package tdesx
import (
"testing"
)
func TestEncryptECBHex(t *testing.T) {
// 3DES密钥需要24字节
key := "123456789012345678901234"
input := "hello world"
encrypted, err := EncryptECBHex(input, key)
if err != nil {
t.Errorf("加密失败: %v", err)
return
}
decrypted, err := DecryptECBHex(encrypted, key)
if err != nil {
t.Errorf("解密失败: %v", err)
return
}
if decrypted != input {
t.Errorf("解密结果不匹配,期望: %s, 实际: %s", input, decrypted)
}
}
func TestEncryptCBCHex(t *testing.T) {
// 3DES密钥需要24字节
key := "123456789012345678901234"
input := "hello world"
encrypted, err := EncryptCBCHex(input, key)
if err != nil {
t.Errorf("CBC加密失败: %v", err)
return
}
decrypted, err := DecryptCBCHex(encrypted, key)
if err != nil {
t.Errorf("CBC解密失败: %v", err)
return
}
if decrypted != input {
t.Errorf("CBC解密结果不匹配,期望: %s, 实际: %s", input, decrypted)
}
}
func TestEncryptCFBHex(t *testing.T) {
// 3DES密钥需要24字节
key := "123456789012345678901234"
input := "hello world"
encrypted, err := EncryptCFBHex(input, key)
if err != nil {
t.Errorf("CFB加密失败: %v", err)
return
}
decrypted, err := DecryptCFBHex(encrypted, key)
if err != nil {
t.Errorf("CFB解密失败: %v", err)
return
}
if decrypted != input {
t.Errorf("CFB解密结果不匹配,期望: %s, 实际: %s", input, decrypted)
}
}
func TestPKCS7Padding(t *testing.T) {
// 测试PKCS7填充和去除
data := []byte("hello")
blockSize := 8
// 填充
padded := PKCS7Padding(data, blockSize)
if len(padded) != blockSize {
t.Errorf("填充长度错误,期望: %d, 实际: %d", blockSize, len(padded))
}
// 去除填充
unpadded, err := PKCS7UnPadding(padded)
if err != nil {
t.Errorf("去除填充失败: %v", err)
return
}
if string(unpadded) != string(data) {
t.Errorf("去除填充后数据不匹配,期望: %s, 实际: %s", string(data), string(unpadded))
}
}