2016-04-25 35 views
2

このコードは、Microsoftストアで公開されていないアプリでも正常に動作します。しかし、公開後に「パディングが無効であり、削除できません」というエラーが表示されます。 キーと塩のすべてのIVがチェックされ、同じです。間違っていると助けてください。または、他のコードを提案する。それは携帯電話8.1とWindows Mobile 10.0アプリです。 ソースファイルがSDカードにあり、宛先がアプリケーションのローカルフォルダにあります。Visual Studioアプリケーションが公開前に公開されていて公開前に公開されていない

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

答えて

0

SDカードからsrcfileにアクセスする際に問題がありました。アクセスが拒否され、anydataを復号化するためにファイルストリームに失敗しました。したがって、ヌルデータを復号化してパディングエラーを発生させます。ファイルストリーム経由でコピーファイルをコピーしてから解読しようとしているので、私はその点を知っています。ファイルのコピーに失敗し、アクセス拒否エラーが発生しました。 SDカード内のファイルのパスへのアクセスが失敗した理由のいずれかを助けることができます。エラーはhttps://www.microsoft.com/getsilverlight/DllResourceIDs/Default.aspx?Version=4.0.30508.0&File=mscorlib.dll&Key=UnauthorizedAccess_IODenied_Pathです。 公開前にアプリがSDカードファイルにアクセスしています。すべての権限が含まれます。

関連する問題