RC2CryptoServiceProvider 클래스

정의

래퍼 개체를 정의하여 RC2 알고리즘의 CSP(암호화 서비스 공급자) 구현에 액세스합니다.Defines a wrapper object to access the cryptographic service provider (CSP) implementation of the RC2 algorithm. 이 클래스는 상속될 수 없습니다.This class cannot be inherited.

public ref class RC2CryptoServiceProvider sealed : System::Security::Cryptography::RC2
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class RC2CryptoServiceProvider : System.Security.Cryptography.RC2
type RC2CryptoServiceProvider = class
    inherit RC2
Public NotInheritable Class RC2CryptoServiceProvider
Inherits RC2
상속
RC2CryptoServiceProvider
특성

예제

다음 코드 예제에서는 암호화 한 다음 문자열을 해독 합니다.The following code example encrypts and then decrypts a string.

using System;
using System.IO;
using System.Text;
using System.Security.Cryptography;

namespace RC2CryptoServiceProvider_Examples
{
    class MyMainClass
    {
        public static void Main()
        {

            // Create a new instance of the RC2CryptoServiceProvider class
            // and automatically generate a Key and IV.
            RC2CryptoServiceProvider rc2CSP = new RC2CryptoServiceProvider();

            Console.WriteLine("Effective key size is {0} bits.", rc2CSP.EffectiveKeySize);

            // Get the key and IV.
            byte[] key = rc2CSP.Key;
            byte[] IV = rc2CSP.IV;

            // Get an encryptor.
            ICryptoTransform encryptor = rc2CSP.CreateEncryptor(key, IV);

            // Encrypt the data as an array of encrypted bytes in memory.
            MemoryStream msEncrypt = new MemoryStream();
            CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write);

            // Convert the data to a byte array.
            string original = "Here is some data to encrypt.";
            byte[] toEncrypt = Encoding.ASCII.GetBytes(original);

            // Write all data to the crypto stream and flush it.
            csEncrypt.Write(toEncrypt, 0, toEncrypt.Length);
            csEncrypt.FlushFinalBlock();

            // Get the encrypted array of bytes.
            byte[] encrypted = msEncrypt.ToArray();

            ///////////////////////////////////////////////////////
            // This is where the data could be transmitted or saved.          
            ///////////////////////////////////////////////////////

            //Get a decryptor that uses the same key and IV as the encryptor.
            ICryptoTransform decryptor = rc2CSP.CreateDecryptor(key, IV);

            // Now decrypt the previously encrypted message using the decryptor
            // obtained in the above step.
            MemoryStream msDecrypt = new MemoryStream(encrypted);
            CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read);

            // Read the decrypted bytes from the decrypting stream
            // and place them in a StringBuilder class.

            StringBuilder roundtrip = new StringBuilder();
            
            int b = 0;

            do
            {
                b = csDecrypt.ReadByte();
                
                if (b != -1)
                {
                    roundtrip.Append((char)b);
                }

            } while (b != -1);
 

            // Display the original data and the decrypted data.
            Console.WriteLine("Original:   {0}", original);
            Console.WriteLine("Round Trip: {0}", roundtrip);

            Console.ReadLine();
        }
    }
}
Imports System.IO
Imports System.Text
Imports System.Security.Cryptography



Module Crypto

    Sub Main()

        ' Create a new instance of the RC2CryptoServiceProvider class
        ' and automatically generate a Key and IV.
        Dim rc2CSP As New RC2CryptoServiceProvider()

        Console.WriteLine("Effective key size is {0} bits.", rc2CSP.EffectiveKeySize)

        ' Get the key and IV.
        Dim key As Byte() = rc2CSP.Key
        Dim IV As Byte() = rc2CSP.IV

        ' Get an encryptor.
        Dim encryptor As ICryptoTransform = rc2CSP.CreateEncryptor(key, IV)

        ' Encrypt the data as an array of encrypted bytes in memory.
        Dim msEncrypt As New MemoryStream()
        Dim csEncrypt As New CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)

        ' Convert the data to a byte array.
        Dim original As String = "Here is some data to encrypt."
        Dim toEncrypt As Byte() = Encoding.ASCII.GetBytes(original)

        ' Write all data to the crypto stream and flush it.
        csEncrypt.Write(toEncrypt, 0, toEncrypt.Length)
        csEncrypt.FlushFinalBlock()

        ' Get the encrypted array of bytes.
        Dim encrypted As Byte() = msEncrypt.ToArray()

        '''''''''''''''''''''''''''''''''''''''''''''''''''''''
        ' This is where the data could be transmitted or saved.          
        '''''''''''''''''''''''''''''''''''''''''''''''''''''''

        'Get a decryptor that uses the same key and IV as the encryptor.
        Dim decryptor As ICryptoTransform = rc2CSP.CreateDecryptor(key, IV)

        ' Now decrypt the previously encrypted message using the decryptor
        ' obtained in the above step.
        Dim msDecrypt As New MemoryStream(encrypted)
        Dim csDecrypt As New CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)

        ' Read the decrypted bytes from the decrypting stream
        ' and place them in a StringBuilder class.
        Dim roundtrip As New StringBuilder()

        Dim b As Integer = 0

        Do
            b = csDecrypt.ReadByte()

            If b <> -1 Then
                roundtrip.Append(ChrW(b))
            End If
        Loop While b <> -1

        ' Display the original data and the decrypted data.
        Console.WriteLine("Original:   {0}", original)
        Console.WriteLine("Round Trip: {0}", roundtrip)

        Console.ReadLine()

    End Sub
End Module

설명

RC2CryptoServiceProvider 구현은 8 비트 단위로 증가 40 비트에서 128 비트 키 길이 지원 합니다.The RC2CryptoServiceProvider implementation supports key lengths from 40 bits to 128 bits in increments of 8 bits.

RC2CryptoServiceProvider 개체는 블록 암호 암호화 하 고 8 바이트 블록 단위로 데이터를 해독 합니다.The RC2CryptoServiceProvider object is a block cipher that encrypts and decrypts data in blocks of 8 bytes. 이 클래스는 8 바이트 보다 작은 경우 데이터의 마지막 블록을 채웁니다.This class pads the final block of data if it is less than 8 bytes. 따라서 암호화 된 데이터의 길이 원래의 일반 텍스트로 보다 클 수 없습니다.As a result of this padding, the length of encrypted data could be greater than the original plaintext.

RC2CryptoServiceProvider 개체 솔트를 사용 하지 않습니다.Note that the RC2CryptoServiceProvider object does not use salt.

참고

고급 암호화 표준 (AES)을 최신 대칭 암호화 알고리즘을 사용할 수 있는 경우A newer symmetric encryption algorithm, Advanced Encryption Standard (AES), is available. 사용 하는 것이 좋습니다 합니다 Aes 알고리즘과 대신 파생된 클래스는 RC2CryptoServiceProvider 클래스입니다.Consider using the Aes algorithm and its derived classes instead of the RC2CryptoServiceProvider class. 사용 하 여 RC2CryptoServiceProvider 레거시 애플리케이션 및 데이터를 사용 하 여 호환성을 위해서만 합니다.Use RC2CryptoServiceProvider only for compatibility with legacy applications and data.

생성자

RC2CryptoServiceProvider()

RC2CryptoServiceProvider 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the RC2CryptoServiceProvider class.

필드

BlockSizeValue

암호화 작업의 블록 크기(비트)를 나타냅니다.Represents the block size, in bits, of the cryptographic operation.

(다음에서 상속됨 SymmetricAlgorithm)
EffectiveKeySizeValue

RC2 알고리즘이 bps 단위로 사용한 비밀 키의 효과적인 크기를 나타냅니다.Represents the effective size of the secret key used by the RC2 algorithm in bits.

(다음에서 상속됨 RC2)
FeedbackSizeValue

암호화 작업의 피드백 크기(비트 단위)를 나타냅니다.Represents the feedback size, in bits, of the cryptographic operation.

(다음에서 상속됨 SymmetricAlgorithm)
IVValue

대칭 알고리즘에 대한 초기화 벡터(IV)를 나타냅니다.Represents the initialization vector (IV) for the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)
KeySizeValue

대칭 알고리즘에서 사용하는 비밀 키의 크기(비트 단위)를 나타냅니다.Represents the size, in bits, of the secret key used by the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)
KeyValue

대칭 알고리즘에 대한 비밀 키를 나타냅니다.Represents the secret key for the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)
LegalBlockSizesValue

대칭 알고리즘에서 지원하는 블록 크기(비트 단위)를 지정합니다.Specifies the block sizes, in bits, that are supported by the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)
LegalKeySizesValue

대칭 알고리즘에서 지원하는 키 크기(비트 단위)를 지정합니다.Specifies the key sizes, in bits, that are supported by the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)
ModeValue

대칭 알고리즘에 사용된 암호화 모드를 나타냅니다.Represents the cipher mode used in the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)
PaddingValue

대칭 알고리즘에 사용된 패딩 모드를 나타냅니다.Represents the padding mode used in the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)

속성

BlockSize

암호화 작업의 블록 크기(비트 단위)를 가져오거나 설정합니다.Gets or sets the block size, in bits, of the cryptographic operation.

(다음에서 상속됨 SymmetricAlgorithm)
EffectiveKeySize

RC2 알고리즘에서 사용하는 비밀 키의 효과적인 크기(비트 단위)를 가져오거나 설정합니다.Gets or sets the effective size, in bits, of the secret key used by the RC2 algorithm.

FeedbackSize

CFB(Cipher Feedback) 및 OFB(Output Feedback) 암호화 모드에 대한 암호화 작업의 피드백 크기(비트 단위)를 가져오거나 설정합니다.Gets or sets the feedback size, in bits, of the cryptographic operation for the Cipher Feedback (CFB) and Output Feedback (OFB) cipher modes.

(다음에서 상속됨 SymmetricAlgorithm)
IV

대칭 알고리즘에 대한 초기화 벡터(IV)를 가져오거나 설정합니다.Gets or sets the initialization vector (IV) for the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)
Key

대칭 알고리즘에 대한 비밀 키를 가져오거나 설정합니다.Gets or sets the secret key for the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)
KeySize

RC2 알고리즘이 bps 단위로 사용한 비밀 키의 크기를 가져오거나 설정합니다.Gets or sets the size of the secret key used by the RC2 algorithm in bits.

(다음에서 상속됨 RC2)
LegalBlockSizes

대칭 알고리즘에서 지원하는 블록 크기(비트 단위)를 가져옵니다.Gets the block sizes, in bits, that are supported by the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)
LegalKeySizes

대칭 알고리즘에서 지원하는 키 크기(비트 단위)를 가져옵니다.Gets the key sizes, in bits, that are supported by the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)
Mode

대칭 알고리즘의 작업 모드를 가져오거나 설정합니다.Gets or sets the mode for operation of the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)
Padding

대칭 알고리즘에 사용된 패딩 모드를 가져오거나 설정합니다.Gets or sets the padding mode used in the symmetric algorithm.

(다음에서 상속됨 SymmetricAlgorithm)
UseSalt

11바이트 길이의 0값 솔트를 사용하여 키를 만들 것인지 여부를 결정하는 값을 가져오거나 설정합니다.Gets or sets a value that determines whether to create a key with an 11-byte-long, zero-value salt.

메서드

Clear()

SymmetricAlgorithm 클래스에서 사용하는 모든 리소스를 해제합니다.Releases all resources used by the SymmetricAlgorithm class.

(다음에서 상속됨 SymmetricAlgorithm)
CreateDecryptor()

현재 Key 속성 및 초기화 벡터(IV)를 사용하여 대칭 decryptor 개체를 만듭니다.Creates a symmetric decryptor object with the current Key property and initialization vector (IV).

(다음에서 상속됨 SymmetricAlgorithm)
CreateDecryptor(Byte[], Byte[])

지정된 키(Key)와 초기화 벡터(IV)를 사용하여 대칭 RC2 암호 해독기 개체를 만듭니다.Creates a symmetric RC2 decryptor object with the specified key (Key) and initialization vector (IV).

CreateEncryptor()

현재 Key 속성 및 초기화 벡터(IV)를 사용하여 대칭 encryptor 개체를 만듭니다.Creates a symmetric encryptor object with the current Key property and initialization vector (IV).

(다음에서 상속됨 SymmetricAlgorithm)
CreateEncryptor(Byte[], Byte[])

지정된 키(RC2)와 초기화 벡터(Key)를 사용하여 대칭 IV encryptor 개체를 만듭니다.Creates a symmetric RC2 encryptor object with the specified key (Key) and initialization vector (IV).

Dispose()

SymmetricAlgorithm 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.Releases all resources used by the current instance of the SymmetricAlgorithm class.

(다음에서 상속됨 SymmetricAlgorithm)
Dispose(Boolean)

SymmetricAlgorithm에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다.Releases the unmanaged resources used by the SymmetricAlgorithm and optionally releases the managed resources.

(다음에서 상속됨 SymmetricAlgorithm)
Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
GenerateIV()

알고리즘에 사용할 임의의 초기화 벡터(IV)를 생성합니다.Generates a random initialization vector (IV) to use for the algorithm.

GenerateKey()

알고리즘에 사용할 임의의 키(Key)를 생성합니다.Generates a random key (Key) to be used for the algorithm.

GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)
ValidKeySize(Int32)

지정된 키 크기를 현재 알고리즘에 사용할 수 있는지 여부를 결정합니다.Determines whether the specified key size is valid for the current algorithm.

(다음에서 상속됨 SymmetricAlgorithm)

명시적 인터페이스 구현

IDisposable.Dispose()

SymmetricAlgorithm에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다.Releases the unmanaged resources used by the SymmetricAlgorithm and optionally releases the managed resources.

(다음에서 상속됨 SymmetricAlgorithm)

적용 대상

추가 정보