2013-06-07 11 views
2

Я понятия не имею, что здесь происходит. Все работает нормально и загружается, но «зашифрованные» данные совпадают с исходными данными. Шифрование не было сделано.Aes Шифрование не работает

if (entry.type == stype.file) 
{ 
    aes.IV = aes.Key; //for now just testing.. 
    byte[] startData = File.ReadAllBytes(baseDir + entries[i]); 
    aes.CreateEncryptor(aes.Key, aes.IV).TransformFinalBlock(startData, 
                  0, 
                  startData.Length); 
    entry.data = startData; 
    entry.data_size = (ulong)entry.data.LongLength; 
    ulong eSize = (ulong)(29 + (ulong)entry.name.Length + entry.data_size); 
    total_size += eSize; 
    entry.entry_size = eSize; 
} 

entry.data - это то же самое, что и исходный startData. Is TransformFinalBlock не шифрует startData?

+0

aes.Key - случайный 256 сгенерированный ключ. Btw – user1594121

+0

oh wow/facepalm – user1594121

ответ

3

TransformFinalBlock возвращает данные, он не зашифровывает входные данные.

+0

Да, спасибо! Я долго кодировал C++, и я привык к указателям и т. Д., Поэтому я просто предположил, что он зашифрует startData как ref. : p – user1594121

+0

Действительно ли «TransformFinalBlock» делает правильное шифрование, если вход меньше блока? – Rawling

+1

@Rawling Только использование 'TransformFinalBlock' в порядке, если вы можете поместить сообщение в память. Вам просто нужно «TransformBlock» для долговременного шифрования/дешифрования. Несмотря на «Блок» в их имени, они не связаны с блоками блокировки. – CodesInChaos

Смежные вопросы