0
は、私は次のリンク復号化列レベルのSQL暗号化された値は
で入手可能な情報を使用して、私はSQL Server 2008でデータの暗号化と復号化を試みているC#での暗号化と復号化技術を読み取り、実験開始されています私はSQLを使用して値を復号化することができ(リンクの例から)次のクエリを使用することにより
は
OPEN SYMMETRIC KEY Sym_password
DECRYPTION BY CERTIFICATE Cert_Password WITH PASSWORD = 'Password!2';
SELECT CAST(DECRYPTBYKEY([Password]) as varchar(200))
FROM Security
CLOSE SYMMETRIC KEY Sym_password;
0を照会します
C#アプリケーションから同じ操作を実行するにはどうすればよいですか?
私のMVCアプリケーションでは、ログインするユーザー名として電子メールアドレスを使用しています(単純なメンバーシップを使用してパスワードがデフォルトでハッシュされています)。 SQLレベルの電子メールフィールドを暗号化し、その値をC#(アプリケーションレベル)で復号化する最良の方法を提案してください。
ユーザーがアプリケーションでユーザー名(電子メール)を入力すると、これをSQLレコードの暗号化された値と比較します。
SQL Server 2008のメインストリームサポートは2年前に終了しました。 SQL Server 2016(https://docs.microsoft.com/en-us/sql/relational-databases/security/encryption/always-encrypted-database-engine)の列レベルの暗号化に移行することを検討してください。これにより、サーバーではなくSQL ServerクライアントAPIによってコードに透過的に暗号化を行うことができます。 –
情報のために@DanGuzmanに感謝します。しかし、残念ながら今は2008年版しかありません。 –
暗号化された電子メールである必要がありますか?なぜ塩漬けされたハッシュを使用しないのですか? –