私は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;
}
}
}