Могу ли я добавить 2 зашифрованные строки вместе и расшифровать их? - PullRequest
4 голосов
/ 14 декабря 2009

У меня есть 2 метода для генерации 2 разных данных, и мне нужно сохранить их в одном зашифрованном файле.

Можно ли этого добиться, добавив зашифрованную строку A + зашифрованную строку B, а затем расшифровать их позже?

Или

Я должен зашифровать строку A -> сохранить как файл -> прочитать файл и расшифровать в строку A -> stringA + stringB -> шифровать?

NB, я использую Rijndael (AES) , и кто-то предложил использовать кастомизированный поток, это будет работать?

Есть мысли? Большое спасибо ~

Ответы [ 3 ]

4 голосов
/ 14 декабря 2009

Если вы используете ECB ( электронная кодовая книга ), то это должно быть возможно (при условии, что они используют один и тот же ключ шифрования), потому что каждый блок дешифруется независимо от других блоков. Если вы используете CBC ( цепочка блоков шифра ), это не будет работать, потому что каждый блок зашифрован с использованием данных из предыдущего блока. Однако использование ECB намного менее безопасно, чем CBC.

2 голосов
/ 14 декабря 2009

Зависит от того, какой алгоритм шифрования вы используете. Для блочных шифров в режиме ECB это будет работать, но именно из-за этого режим ECB считается очень небезопасным (он делает некоторые виды атак на шифр очень легкими). ​​

2 голосов
/ 14 декабря 2009

Если вы зашифровываете каждое отдельно и знаете длину каждого блока зашифрованного текста, вы можете расшифровать их позже отдельно.

Что-то вроде этого формата, вероятно, будет работать:

Message1Length
Message1Content
Message2Content

Считайте Message1Length количество байтов в сообщении и сохраните его как encryptedMessage1 или что-то еще. Затем прочитайте с этой точки до конца файла и сохраните его как encryptedMessage2. Затем расшифруйте их обоих по отдельности.

...