Задать вопрос
chincharovpc
@chincharovpc

Как шифровать данные частями?

Получаю данные частями(примерно 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...)
}
  • Вопрос задан
  • 119 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы