title: C# Decrypt bytes from SQL Server EncryptByPassPhrase?
body: <p>Following <a href="https://stackoverflow.com/questions/13617807/replicate-t-sql-decryptbypassphrase-in-c-sharp">Replicate T-SQL DecryptByPassPhrase in C#</a>, I am unable to get a simple encryption with MSSQL to descrypt in C#. The encrypted values in certain columns is necessary because the table is exported into Excel and Access on a regular basis so simple encryption is more than enough to "block" values  without having to involve developers to (re)do views, etc.</p>
  
  <p>In SQL Server 2012:</p>
  
  <pre><code>    select EncryptByPassPhrase( N'hello' , N'world'  ) 
  -- returns 0x01000000AA959FFB3A8E4B06B734051437E198C8B72000A058ACE91D617123DA102287EB
  </code></pre>
  
  <p>In C#:</p>
  
  <pre><code>byte[] buf = System.Text.Encoding.UTF8.GetBytes( "0x010000003A95FA870ED699A5F90D33C2BF01491D9132F61BA162998E96F37117AF5DA0905D51EB6FB298EC88" );
  // bytes emitted from the database
  var cp = new TripleDESCryptoServiceProvider();
  var m = new MemoryStream(buf);
  cp.Key = System.Text.Encoding.UTF8.GetBytes( "hello" ); // throws
  cp.IV = System.Text.Encoding.UTF8.GetBytes( "hello" ); // throws
  CryptoStream cs = new CryptoStream( m , cp.CreateDecryptor( cp.Key , cp.IV ) , CryptoStreamMode.Read );
  StreamReader reader = new StreamReader( cs );
  string plainText = reader.ReadToEnd();
  </code></pre>
  
  <p>What should working C# code look like?</p>
  
  <p>Thanks.</p>