Получаю данные частями(примерно 10 частей)
Нужно зашифровать каждую часть и записать в один файл.
При дешифровании правильно расшифровывает только первую часть.
Как я понял при шифровании дописываются дополнительные байты, поэтому дешифровщик работает неправильно.
Как правильно зашифровать?
Использую алгоритм DES(нужно использовать именно его)
Функция шифрования
func Encrypt(key, iv, plainText []byte) (ciphertext []byte, err error) {
block, err := des.NewCipher(key)
if err != nil {
return nil, err
}
blockSize := block.BlockSize()
origData := pkcs5Padding(plainText, blockSize)
blockMode := cipher.NewCBCEncrypter(block, iv)
cryted := make([]byte, len(origData))
blockMode.CryptBlocks(cryted, origData)
return cryted, nil
}
func pkcs5Padding(src []byte, blockSize int) []byte {
padding := blockSize - len(src)%blockSize
padtext := bytes.Repeat([]byte{byte(padding)}, padding)
return append(src, padtext...)
}