0

私はC#でProtectData.Protect()and関数を試しています。ProtectData.Unprotect()暗号化されたデータを SQLite データベースに書き込み、データベースを読み取ってデータを復号化するプログラムを作成しました。コードを実行するたびに、次のエラーが表示されます。

   Unhandled Exception: System.Security.Cryptography.CryptographicException: The parameter is incorrect.

   at System.Security.Cryptography.ProtectedData.Unprotect(Byte[] encryptedData, Byte[] optionalEntropy, DataProtectionScope scope)
   at MyProgram.ReadData(SQLiteConnection conn)
   at MyProgram.Main()

完全なコードは非常に長いですが、decrypt()関数は次のとおりです。バイト配列を渡しています。を使用して型がバイト配列であることを確認しました。myByteData.GetType()これは を返しますSystem.Byte[]

public static byte [] decrypt( byte [] data ) {
        
        byte [] s_additionalEntropy = null;
        
        try {
            
            //Decrypt
            return ProtectedData.Unprotect( data, s_additionalEntropy, DataProtectionScope.CurrentUser );
            
        }catch{
            
            try {
            
                return ProtectedData.Unprotect( data, s_additionalEntropy, DataProtectionScope.LocalMachine );
                
            }catch (Exception e){
                
                Console.Write("Error: ");
                Console.WriteLine(e.Message);
                return null;
                
            }
        }
    }
4

0 に答える 0