답변과 함께 많은 질문이 있지만 시간과 시간을 들여 google을 사용하여 찾은 모든 제안을 시도했습니다.C# AesManaged Exception : 안쪽 여백이 잘못되어 제거 할 수 없습니다.
파일을 다운로드했으며 격리 된 저장소에 암호화 된 파일을 저장하려고합니다.
using (var fs = new IsolatedStorageFileStream(fileName, FileMode.Create, store))
{
byte[] bytesInStream = new byte[args.Result.Length];
args.Result.Read(bytesInStream, 0, bytesInStream.Length);
var aes = new AesManaged
{
Key = GetBytes("aaaaaaaa"),
IV = GetBytes("bbbbbbbb")
};
byte[] encryptedArray;
using (MemoryStream memoryStream = new MemoryStream())
{
using (CryptoStream cryptoStream = new CryptoStream(memoryStream, aes.CreateEncryptor(), CryptoStreamMode.Write))
{
cryptoStream.Write(bytesInStream, 0, bytesInStream.Length);
cryptoStream.FlushFinalBlock();
encryptedArray = memoryStream.ToArray();
}
}
fs.Write(encryptedArray, 0, encryptedArray.Length);
fs.Flush();
}
다음 코드는 격리 된 저장소에서 파일을 읽을하고 암호를 해독 : 프로그램이이 선에 도달
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
if (store.FileExists(fileName))
{
var file = store.OpenFile(fileName, FileMode.Open,FileAccess.Read,FileShare.Read);
var reader = new BinaryReader(file);
var aes = new AesManaged
{
Key = GetBytes("aaaaaaaa"),
IV = GetBytes("bbbbbbbb")
};
byte[] decodedContent;
byte[] encodedContent = reader.ReadBytes(1280);
using (MemoryStream ms = new MemoryStream(encodedAudio))
{
using (CryptoStream cs = new CryptoStream(ms, aes.CreateDecryptor(), CryptoStreamMode.Read))
{
BinaryReader r= new BinaryReader(cs);
decodedContent= r.ReadBytes(encodedContent.Length);
}
}
}
: decodedContent = r.ReadBytes 이것은 내가 그것을 저장하는 방법입니다 (encodedContent.Length); CryptographicException 다음 메시지가 나타납니다. 패딩이 잘못되어 제거 할 수 없습니다.
누구든지이 문제를 해결할 수 있습니까?
분명히 그 마법 1280을 최대한 빨리 제거해야합니다. 무슨 생각하고 있었던거야? –
블록으로 파일을 디코드하고 싶습니다. – vladtamas
내 코드를 사용해 보셨습니까? – HackerMan