2016-04-25 5 views
2

Dieser Code funktioniert gut, wenn die App nicht im Microsoft Store veröffentlicht wird. Aber gibt "Padding ist ungültig und kann nicht entfernt werden" Fehler nach der Veröffentlichung. Alle Schlüssel und Salz IV sind geprüft und sind gleich. was ist falsch, bitte helfen. Oder schlagen Sie anderen Code vor. Es ist Handy 8.1 und Windows Mobile 10.0 App. Die Quelldatei befindet sich auf der SD-Karte und das Ziel befindet sich im lokalen Ordner der Anwendung.Visual Studio-App, die vor der Veröffentlichung im Geschäft und nicht nach der Veröffentlichung funktioniert

int Iterations = 1000; 
AesManaged aes = new AesManaged(); 
aes.BlockSize = aes.LegalBlockSizes[0].MaxSize; 
aes.KeySize = aes.LegalKeySizes[0].MaxSize; 
byte[] salt = GetBytes(SaltKey); 
Rfc2898DeriveBytes key = new Rfc2898DeriveBytes(SKey, salt, Iterations); 
aes.Key = key.GetBytes(aes.KeySize/8); 
aes.IV = key.GetBytes(aes.BlockSize/8); 

ICryptoTransform transform = aes.CreateDecryptor(aes.Key, aes.IV); 
try 
{ 
    using (FileStream dest = new FileStream(destFilename, FileMode.CreateNew, FileAccess.Write, FileShare.None)) 
    { 
     using (CryptoStream cryptoStream = new CryptoStream(dest, transform, CryptoStreamMode.Write)) 
     { 
      using (FileStream source = new FileStream(srcFilename, FileMode.Open, FileAccess.Read, FileShare.Read)) 
      { 

       source.CopyTo(cryptoStream);        

      } 

     } 
    } 
} 
catch (Exception exception) 
{ 
    //return "Decryption failed : " + exception.Message.ToString(); 
    System.Diagnostics.Debug.WriteLine("Decryption failed : " + exception.Message.ToString()); 
    //throw new ApplicationException("Decryption failed.", exception); 
    MessageBox.Show("Decryption failed : " + exception.Message.ToString()); 
} 

Antwort

0

Das Problem bestand beim Zugriff auf srcfile von SD-Karte. Der Zugriff wurde verweigert und dieser fehlgeschlagene Dateistream konnte keine Daten entschlüsseln. Daher entschlüsselt es Nulldaten und gibt einen Füllfehler aus. Ich habe den Punkt verstanden, weil ich versuche, die Datei per Filestream zu kopieren und dann zu entschlüsseln. Die kopierte Datei ist fehlgeschlagen und hat den Fehler "Zugriff verweigert" erhalten. Kann irgendjemand helfen, warum der Zugriff auf den Pfad der Datei auf der SD-Karte fehlgeschlagen ist. Der Fehler ist https://www.microsoft.com/getsilverlight/DllResourceIDs/Default.aspx?Version=4.0.30508.0&File=mscorlib.dll&Key=UnauthorizedAccess_IODenied_Path. Die App greift vor dem Veröffentlichen auf die SD-Kartendatei zu. Alle Berechtigungen sind enthalten.