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());
}