2013-06-07 2 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와 같습니다. 은 startData을 암호화하지 않습니까?

+0

aes.Key는 임의의 256 생성 키입니다. btw – user1594121

+0

오 와우/페이스 팔 – user1594121

답변

3

TransformFinalBlock은 입력 된 내용을 암호화하지 않습니다.

+0

그래, 고마워! C++을 오랫동안 코딩하고 있었고 포인터 '&'등을 사용하여 startData를 참조로 암호화 할 것이라고 가정했습니다. : p – user1594121

+0

입력이 블록보다 작다고 가정 할 때'TransformFinalBlock'이 실제로 적절한 암호화를 수행합니까? – Rawling

+1

@Rawling 'TransformFinalBlock' 만 사용하면 메시지를 메모리에 넣을 수 있다면 좋습니다. 긴 스트리밍 암호화/복호화를 위해서만'TransformBlock'이 필요합니다. 그들의 이름에'Block'이 있음에도 불구하고 그들은 blockcipher 블록과 관련이 없습니다. – CodesInChaos

관련 문제