RC2CryptoServiceProvider 클래스

정의

주의

Derived cryptographic types are obsolete. Use the Create method on the base type instead.

래퍼 개체를 정의하여 RC2 알고리즘의 CSP(암호화 서비스 공급자) 구현에 액세스합니다. 이 클래스는 상속될 수 없습니다.

public ref class RC2CryptoServiceProvider sealed : System::Security::Cryptography::RC2
public sealed class RC2CryptoServiceProvider : System.Security.Cryptography.RC2
[System.Obsolete("Derived cryptographic types are obsolete. Use the Create method on the base type instead.", DiagnosticId="SYSLIB0021", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public sealed class RC2CryptoServiceProvider : System.Security.Cryptography.RC2
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class RC2CryptoServiceProvider : System.Security.Cryptography.RC2
type RC2CryptoServiceProvider = class
    inherit RC2
[<System.Obsolete("Derived cryptographic types are obsolete. Use the Create method on the base type instead.", DiagnosticId="SYSLIB0021", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type RC2CryptoServiceProvider = class
    inherit RC2
[<System.Runtime.InteropServices.ComVisible(true)>]
type RC2CryptoServiceProvider = class
    inherit RC2
Public NotInheritable Class RC2CryptoServiceProvider
Inherits RC2
상속
RC2CryptoServiceProvider
특성

예제

다음 코드 예제에서는 문자열을 암호화한 다음 암호를 해독합니다.

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);
        }
    }
}
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)

    End Sub
End Module

설명

구현은 RC2CryptoServiceProvider 40비트에서 128비트까지의 키 길이를 8비트 단위로 지원합니다.

개체는 RC2CryptoServiceProvider 8바이트 블록으로 데이터를 암호화하고 암호 해독하는 블록 암호입니다. 이 클래스는 8바이트 미만인 경우 최종 데이터 블록을 채운다. 이 패딩의 결과로 암호화된 데이터의 길이가 원래 일반 텍스트보다 클 수 있습니다.

개체는 솔트 RC2CryptoServiceProvider (salt)를 사용하지 않습니다.

참고

최신 대칭 암호화 알고리즘인 AES(Advanced Encryption Standard)를 사용할 수 있습니다. 클래스 대신 알고리즘 및 해당 파생 클래스를 사용하는 Aes 것이 좋습니다 RC2CryptoServiceProvider . 사용 하 여 RC2CryptoServiceProvider 레거시 애플리케이션 및 데이터를 사용 하 여 호환성을 위해서만 합니다.

생성자

RC2CryptoServiceProvider()

RC2CryptoServiceProvider 클래스의 새 인스턴스를 초기화합니다.

필드

BlockSizeValue

암호화 작업의 블록 크기(비트)를 나타냅니다.

(다음에서 상속됨 SymmetricAlgorithm)
EffectiveKeySizeValue

RC2 알고리즘이 bps 단위로 사용한 비밀 키의 효과적인 크기를 나타냅니다.

(다음에서 상속됨 RC2)
FeedbackSizeValue

암호화 작업의 피드백 크기(비트 단위)를 나타냅니다.

(다음에서 상속됨 SymmetricAlgorithm)
IVValue

대칭 알고리즘에 대한 초기화 벡터(IV)를 나타냅니다.

(다음에서 상속됨 SymmetricAlgorithm)
KeySizeValue

대칭 알고리즘에서 사용하는 비밀 키의 크기(비트 단위)를 나타냅니다.

(다음에서 상속됨 SymmetricAlgorithm)
KeyValue

대칭 알고리즘에 대한 비밀 키를 나타냅니다.

(다음에서 상속됨 SymmetricAlgorithm)
LegalBlockSizesValue

대칭 알고리즘에서 지원하는 블록 크기(비트 단위)를 지정합니다.

(다음에서 상속됨 SymmetricAlgorithm)
LegalKeySizesValue

대칭 알고리즘에서 지원하는 키 크기(비트 단위)를 지정합니다.

(다음에서 상속됨 SymmetricAlgorithm)
ModeValue

대칭 알고리즘에 사용된 암호화 모드를 나타냅니다.

(다음에서 상속됨 SymmetricAlgorithm)
PaddingValue

대칭 알고리즘에 사용된 패딩 모드를 나타냅니다.

(다음에서 상속됨 SymmetricAlgorithm)

속성

BlockSize

암호화 작업의 블록 크기(비트 단위)를 가져오거나 설정합니다.

(다음에서 상속됨 SymmetricAlgorithm)
EffectiveKeySize

RC2 알고리즘에서 사용하는 비밀 키의 효과적인 크기(비트 단위)를 가져오거나 설정합니다.

FeedbackSize

CFB(Cipher Feedback) 및 OFB(Output Feedback) 암호화 모드에 대한 암호화 작업의 피드백 크기(비트 단위)를 가져오거나 설정합니다.

(다음에서 상속됨 SymmetricAlgorithm)
IV

대칭 알고리즘에 대한 초기화 벡터(IV)를 가져오거나 설정합니다.

(다음에서 상속됨 SymmetricAlgorithm)
Key

대칭 알고리즘에 대한 비밀 키를 가져오거나 설정합니다.

(다음에서 상속됨 SymmetricAlgorithm)
KeySize

RC2 알고리즘에서 사용하는 비밀 키의 크기(비트)를 가져오거나 설정합니다.

(다음에서 상속됨 RC2)
LegalBlockSizes

대칭 알고리즘에서 지원하는 블록 크기(비트 단위)를 가져옵니다.

(다음에서 상속됨 SymmetricAlgorithm)
LegalKeySizes

대칭 알고리즘에서 지원하는 키 크기(비트 단위)를 가져옵니다.

(다음에서 상속됨 SymmetricAlgorithm)
Mode

대칭 알고리즘의 작업 모드를 가져오거나 설정합니다.

(다음에서 상속됨 SymmetricAlgorithm)
Padding

대칭 알고리즘에 사용된 패딩 모드를 가져오거나 설정합니다.

(다음에서 상속됨 SymmetricAlgorithm)
UseSalt

11바이트 길이의 0값 솔트를 사용하여 키를 만들 것인지 여부를 결정하는 값을 가져오거나 설정합니다.

메서드

Clear()

SymmetricAlgorithm 클래스에서 사용하는 모든 리소스를 해제합니다.

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

현재 Key 속성 및 초기화 벡터(IV)를 사용하여 대칭 decryptor 개체를 만듭니다.

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

지정된 키(Key)와 초기화 벡터(IV)를 사용하여 대칭 RC2 암호 해독기 개체를 만듭니다.

CreateEncryptor()

현재 Key 속성 및 초기화 벡터(IV)를 사용하여 대칭 encryptor 개체를 만듭니다.

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

지정된 키(RC2)와 초기화 벡터(Key)를 사용하여 대칭 IV encryptor 개체를 만듭니다.

DecryptCbc(Byte[], Byte[], PaddingMode)

지정된 패딩 모드에서 CBC 모드를 사용하여 데이터를 해독합니다.

(다음에서 상속됨 SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)

지정된 패딩 모드에서 CBC 모드를 사용하여 데이터를 해독합니다.

(다음에서 상속됨 SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)

지정된 패딩 모드에서 CBC 모드를 사용하여 데이터를 지정된 버퍼로 해독합니다.

(다음에서 상속됨 SymmetricAlgorithm)
DecryptCfb(Byte[], Byte[], PaddingMode, Int32)

지정된 안쪽 여백 모드 및 피드백 크기로 CFB 모드를 사용하여 데이터를 해독합니다.

(다음에서 상속됨 SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)

지정된 안쪽 여백 모드 및 피드백 크기로 CFB 모드를 사용하여 데이터를 해독합니다.

(다음에서 상속됨 SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

지정된 패딩 모드 및 피드백 크기가 있는 CFB 모드를 사용하여 데이터를 지정된 버퍼로 해독합니다.

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

지정된 패딩 모드를 사용하여 ECB 모드를 사용하여 데이터를 해독합니다.

(다음에서 상속됨 SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, PaddingMode)

지정된 패딩 모드를 사용하여 ECB 모드를 사용하여 데이터를 해독합니다.

(다음에서 상속됨 SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)

지정된 패딩 모드에서 ECB 모드를 사용하여 데이터를 지정된 버퍼로 해독합니다.

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

SymmetricAlgorithm 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.

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

SymmetricAlgorithm에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다.

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

지정된 패딩 모드로 CBC 모드를 사용하여 데이터를 암호화합니다.

(다음에서 상속됨 SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)

지정된 패딩 모드로 CBC 모드를 사용하여 데이터를 암호화합니다.

(다음에서 상속됨 SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)

지정된 패딩 모드가 있는 CBC 모드를 사용하여 데이터를 지정된 버퍼로 암호화합니다.

(다음에서 상속됨 SymmetricAlgorithm)
EncryptCfb(Byte[], Byte[], PaddingMode, Int32)

지정된 패딩 모드 및 피드백 크기로 CFB 모드를 사용하여 데이터를 암호화합니다.

(다음에서 상속됨 SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)

지정된 패딩 모드 및 피드백 크기로 CFB 모드를 사용하여 데이터를 암호화합니다.

(다음에서 상속됨 SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

지정된 패딩 모드 및 피드백 크기가 있는 CFB 모드를 사용하여 데이터를 지정된 버퍼로 암호화합니다.

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

지정된 패딩 모드로 ECB 모드를 사용하여 데이터를 암호화합니다.

(다음에서 상속됨 SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, PaddingMode)

지정된 패딩 모드로 ECB 모드를 사용하여 데이터를 암호화합니다.

(다음에서 상속됨 SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)

지정된 패딩 모드에서 ECB 모드를 사용하여 데이터를 지정된 버퍼로 암호화합니다.

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

지정된 개체가 현재 개체와 같은지 확인합니다.

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

알고리즘에 사용할 임의의 초기화 벡터(IV)를 생성합니다.

GenerateKey()

알고리즘에 사용할 임의의 키(Key)를 생성합니다.

GetCiphertextLengthCbc(Int32, PaddingMode)

CBC 모드에서 지정된 패딩 모드 및 일반 텍스트 길이가 있는 암호 텍스트의 길이를 가져옵니다.

(다음에서 상속됨 SymmetricAlgorithm)
GetCiphertextLengthCfb(Int32, PaddingMode, Int32)

CFB 모드에서 지정된 패딩 모드 및 일반 텍스트 길이가 있는 암호 텍스트의 길이를 가져옵니다.

(다음에서 상속됨 SymmetricAlgorithm)
GetCiphertextLengthEcb(Int32, PaddingMode)

ECB 모드에서 지정된 패딩 모드 및 일반 텍스트 길이가 있는 암호 텍스트의 길이를 가져옵니다.

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

기본 해시 함수로 작동합니다.

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

현재 인스턴스의 Type을 가져옵니다.

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

현재 Object의 단순 복사본을 만듭니다.

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

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)
TryDecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)

지정된 패딩 모드에서 CBC 모드를 사용하여 데이터를 지정된 버퍼로 암호 해독하려고 시도합니다.

(다음에서 상속됨 SymmetricAlgorithm)
TryDecryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

파생 클래스에서 재정의된 경우 지정된 패딩 모드에서 CBC 모드를 사용하여 데이터를 지정된 버퍼로 암호 해독하려고 시도합니다.

(다음에서 상속됨 SymmetricAlgorithm)
TryDecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)

지정된 패딩 모드 및 피드백 크기가 있는 CFB 모드를 사용하여 데이터를 지정된 버퍼로 암호 해독하려고 시도합니다.

(다음에서 상속됨 SymmetricAlgorithm)
TryDecryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)

파생 클래스에서 재정의된 경우 지정된 패딩 모드 및 피드백 크기가 있는 CFB 모드를 사용하여 지정된 버퍼로 데이터를 해독하려고 시도합니다.

(다음에서 상속됨 SymmetricAlgorithm)
TryDecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

지정된 패딩 모드가 있는 ECB 모드를 사용하여 데이터를 지정된 버퍼로 암호 해독하려고 시도합니다.

(다음에서 상속됨 SymmetricAlgorithm)
TryDecryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

파생 클래스에서 재정의된 경우 지정된 패딩 모드가 있는 ECB 모드를 사용하여 데이터를 지정된 버퍼로 해독하려고 시도합니다.

(다음에서 상속됨 SymmetricAlgorithm)
TryEncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)

지정된 패딩 모드에서 CBC 모드를 사용하여 지정된 버퍼로 데이터를 암호화하려고 시도합니다.

(다음에서 상속됨 SymmetricAlgorithm)
TryEncryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

파생 클래스에서 재정의된 경우 지정된 패딩 모드가 있는 CBC 모드를 사용하여 지정된 버퍼로 데이터를 암호화하려고 시도합니다.

(다음에서 상속됨 SymmetricAlgorithm)
TryEncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)

지정된 패딩 모드 및 피드백 크기가 있는 CFB 모드를 사용하여 지정된 버퍼로 데이터를 암호화하려고 시도합니다.

(다음에서 상속됨 SymmetricAlgorithm)
TryEncryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)

파생 클래스에서 재정의된 경우 지정된 패딩 모드 및 피드백 크기가 있는 CFB 모드를 사용하여 데이터를 지정된 버퍼로 암호화하려고 시도합니다.

(다음에서 상속됨 SymmetricAlgorithm)
TryEncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

지정된 패딩 모드에서 ECB 모드를 사용하여 지정된 버퍼로 데이터를 암호화하려고 시도합니다.

(다음에서 상속됨 SymmetricAlgorithm)
TryEncryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

파생 클래스에서 재정의된 경우 지정된 패딩 모드가 있는 ECB 모드를 사용하여 데이터를 지정된 버퍼로 암호화하려고 시도합니다.

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

지정된 키 크기를 현재 알고리즘에 사용할 수 있는지 여부를 결정합니다.

(다음에서 상속됨 SymmetricAlgorithm)

명시적 인터페이스 구현

IDisposable.Dispose()

이 API는 제품 인프라를 지원하며 코드에서 직접 사용되지 않습니다.

SymmetricAlgorithm에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다.

(다음에서 상속됨 SymmetricAlgorithm)

적용 대상

추가 정보