package desx import ( "testing" ) func TestEncryptECBHex(t *testing.T) { // DES密钥需要8字节 key := "12345678" 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) { // DES密钥需要8字节 key := "12345678" 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) { // DES密钥需要8字节 key := "12345678" 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)) } }