TripleDESCryptoServiceProvider クラス

TripleDES アルゴリズムの暗号サービス プロバイダ (CSP: Cryptographic Service Provider) バージョンにアクセスする、ラッパー オブジェクトを定義します。このクラスは継承できません。

この型のすべてのメンバの一覧については、TripleDESCryptoServiceProvider メンバ を参照してください。

System.Object
   System.Security.Cryptography.SymmetricAlgorithm
      System.Security.Cryptography.TripleDES
         System.Security.Cryptography.TripleDESCryptoServiceProvider

NotInheritable Public Class TripleDESCryptoServiceProvider
   Inherits TripleDES
[C#]
public sealed class TripleDESCryptoServiceProvider : TripleDES
[C++]
public __gc __sealed class TripleDESCryptoServiceProvider : public
   TripleDES
[JScript]
public class TripleDESCryptoServiceProvider extends TripleDES

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

使用例

[Visual Basic, C#, C++] 指定した Key と初期化ベクタ (IV) で TripleDESCryptoServiceProvider を使用して、 inName で指定したファイルを暗号化し、暗号化の結果を outName で指定したファイルに出力するメソッドの例を次に示します。

 
Private Shared Sub EncryptData(inName As String, outName As String, _
   tdesKey() As Byte, tdesIV() As Byte)
   
    'Create the file streams to handle the input and output files.
    Dim fin As New FileStream(inName, FileMode.Open, FileAccess.Read)
    Dim fout As New FileStream(outName, FileMode.OpenOrCreate, _
       FileAccess.Write)
    fout.SetLength(0)
        
    'Create variables to help with read and write.
    Dim bin(100) As Byte 'This is intermediate storage for the encryption.
    Dim rdlen As Long = 0 'This is the total number of bytes written.
    Dim totlen As Long = fin.Length 'This is the total length of the input file.
    Dim len As Integer 'This is the number of bytes to be written at a time.
    Dim tdes As New TripleDESCryptoServiceProvider()
    Dim encStream As New CryptoStream(fout, _
       tdes.CreateEncryptor(tdesKey, tdesIV), CryptoStreamMode.Write)
        
    Console.WriteLine("Encrypting...")
        
    'Read from the input file, then encrypt and write to the output file.
    While rdlen < totlen
        len = fin.Read(bin, 0, 100)
        encStream.Write(bin, 0, len)
        rdlen = rdlen + len
        Console.WriteLine("{0} bytes processed", rdlen)
    End While
        
    encStream.Close()
End Sub

[C#] 
private static void EncryptData(String inName, String outName, byte[] tdesKey, byte[] tdesIV)
{    
    //Create the file streams to handle the input and output files.
    FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);
    FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);
    fout.SetLength(0);
      
    //Create variables to help with read and write.
    byte[] bin = new byte[100]; //This is intermediate storage for the encryption.
    long rdlen = 0;              //This is the total number of bytes written.
    long totlen = fin.Length;    //This is the total length of the input file.
    int len;                     //This is the number of bytes to be written at a time.

    TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();          
    CryptoStream encStream = new CryptoStream(fout, tdes.CreateEncryptor(tdesKey, tdesIV), CryptoStreamMode.Write);
               
    Console.WriteLine("Encrypting...");

    //Read from the input file, then encrypt and write to the output file.
    while(rdlen < totlen)
    {
        len = fin.Read(bin, 0, 100);
        encStream.Write(bin, 0, len);
        rdlen = rdlen + len;
        Console.WriteLine("{0} bytes processed", rdlen);
    }

    encStream.Close();                     
}

[C++] 
void EncryptData(String* inName, String* outName, Byte tdesKey[], Byte tdesIV[])
{    
    //Create the file streams to handle the input and output files.
    FileStream* fin = new FileStream(inName, FileMode::Open, FileAccess::Read);
    FileStream* fout = new FileStream(outName, FileMode::OpenOrCreate, FileAccess::Write);
    fout->SetLength(0);

    //Create variables to help with read and write.
    Byte bin[] = new Byte[100]; //This is intermediate storage for the encryption.
    long rdlen = 0;              //This is the total number of bytes written.
    long totlen = (long)fin->Length;//This is the total length of the input file.
    int len;                     //This is the number of bytes to be written at a time.

    TripleDESCryptoServiceProvider* tdes = new TripleDESCryptoServiceProvider();          
    CryptoStream* encStream = new CryptoStream(fout, tdes->CreateEncryptor(tdesKey, tdesIV), CryptoStreamMode::Write);

    Console::WriteLine(S"Encrypting...");

    //Read from the input file, then encrypt and write to the output file.
    while(rdlen < totlen)
    {
        len = fin->Read(bin, 0, 100);
        encStream->Write(bin, 0, len);
        rdlen = rdlen + len;
        Console::WriteLine(S"{0} bytes processed", __box(rdlen));
    }

    encStream->Close();                     
}

[Visual Basic, C#, C++] 復号化も同じ方法で処理できます。ただし、その場合は CreateEncryptor の代わりに CreateDecryptor を使用します。復号化では、ファイルを暗号化するために使用したものと同じ KeyIV を使用する必要があります。

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

名前空間: System.Security.Cryptography

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

アセンブリ: Mscorlib (Mscorlib.dll 内)

参照

TripleDESCryptoServiceProvider メンバ | System.Security.Cryptography 名前空間 | 暗号サービス