C#で暗号化
C#で暗号化を行うにはmscorrlib.dll内のSystem.Security.Cryptography名前空間にあるクラスを用いる。
一般的によく使われる方法についてメモ。
パスワードを使った暗号化
- PasswordDeriveBytesクラスを使って鍵を生成する
- RC2CryptoServiceProviderやDESCryptoServiceProviderなどのSymmetricAlgorithmを継承したクラスをインスタンシエーション
- 上記クラスのCreateEncryptorに鍵と初期ベクタを渡してICryptoTransformインターフェイスを取得
- ICryptoTransform.TransformBlockとICryptoTransform.TransformFinalBlockを使って暗号化
パスワードを使った復号
- PasswordDeriveBytesクラスを使って鍵を生成する
- RC2CryptoServiceProviderやDESCryptoServiceProviderなどのSymmetricAlgorithmを継承したクラスをインスタンシエーション
- 上記クラスのCreateDecryptorに鍵と初期ベクタを渡してICryptoTransformインターフェイスを取得
- ICryptoTransform.TransformBlockとICryptoTransform.TransformFinalBlockを使って復号
ストリームを使いたい場合