RC2CryptoServiceProvider クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
注意事項
Derived cryptographic types are obsolete. Use the Create method on the base type instead.
RC2 アルゴリズムの暗号サービス プロバイダー (CSP: Cryptographic Service Provider) 実装にアクセスするためのラッパー オブジェクトを定義します。 このクラスは継承できません。
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
- 継承
- 属性
例
次のコード例では、文字列の暗号化と暗号化解除を行います。
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 バイト未満の場合に埋め込みます。 この埋め込みの結果として、暗号化されたデータの長さが元のプレーンテキストよりも大きくなる可能性があります。
オブジェクトは salt を使用しないことに RC2CryptoServiceProvider 注意してください。
注意
新しい対称暗号化アルゴリズムである Advanced Encryption Standard (AES) を使用できます。 クラスの代わりに、 Aes アルゴリズムとその派生クラスを RC2CryptoServiceProvider 使用することを検討してください。 レガシ アプリケーションとデータとの互換性のためにのみ使用 RC2CryptoServiceProvider します。
コンストラクター
RC2CryptoServiceProvider() |
古い.
RC2CryptoServiceProvider クラスの新しいインスタンスを初期化します。 |
フィールド
BlockSizeValue |
古い.
暗号操作のブロック サイズをビット単位で表します。 (継承元 SymmetricAlgorithm) |
EffectiveKeySizeValue |
古い.
RC2 アルゴリズムで使用する共有キーの有効なサイズをビット単位で表します。 (継承元 RC2) |
FeedbackSizeValue |
古い.
暗号操作のフィードバック サイズをビット単位で表します。 (継承元 SymmetricAlgorithm) |
IVValue |
古い.
対称アルゴリズムで使用する初期化ベクター (IV) を表します。 (継承元 SymmetricAlgorithm) |
KeySizeValue |
古い.
対称アルゴリズムで使用する共有キーのサイズをビット単位で表します。 (継承元 SymmetricAlgorithm) |
KeyValue |
古い.
対称アルゴリズムの共有キーを表します。 (継承元 SymmetricAlgorithm) |
LegalBlockSizesValue |
古い.
対称アルゴリズムでサポートされているブロック サイズをビット単位で指定します。 (継承元 SymmetricAlgorithm) |
LegalKeySizesValue |
古い.
対称アルゴリズムでサポートされているキー サイズをビット単位で指定します。 (継承元 SymmetricAlgorithm) |
ModeValue |
古い.
対称アルゴリズムで使用する暗号モードを表します。 (継承元 SymmetricAlgorithm) |
PaddingValue |
古い.
対称アルゴリズムで使用する埋め込みモードを表します。 (継承元 SymmetricAlgorithm) |
プロパティ
BlockSize |
古い.
暗号操作のブロック サイズをビット単位で取得または設定します。 (継承元 SymmetricAlgorithm) |
EffectiveKeySize |
古い.
RC2 アルゴリズムで使用する共有キーの有効サイズを、ビット単位で取得または設定します。 |
FeedbackSize |
古い.
暗号フィードバック (CFB) および出力フィードバック (OFB) の暗号モードにおける暗号化操作のフィードバック サイズをビット単位で取得または設定します。 (継承元 SymmetricAlgorithm) |
IV |
古い.
対称アルゴリズムの初期化ベクター (IV) を取得または設定します。 (継承元 SymmetricAlgorithm) |
Key |
古い.
対称アルゴリズムの共有キーを取得または設定します。 (継承元 SymmetricAlgorithm) |
KeySize |
古い.
RC2 アルゴリズムで使用される秘密キーのサイズをビット単位で取得または設定します。 (継承元 RC2) |
LegalBlockSizes |
古い.
対称アルゴリズムでサポートされているブロック サイズをビット単位で取得します。 (継承元 SymmetricAlgorithm) |
LegalKeySizes |
古い.
対称アルゴリズムでサポートされているキー サイズをビット単位で取得します。 (継承元 SymmetricAlgorithm) |
Mode |
古い.
対称アルゴリズムの操作モードを取得または設定します。 (継承元 SymmetricAlgorithm) |
Padding |
古い.
対称アルゴリズムで使用する埋め込みモードを取得または設定します。 (継承元 SymmetricAlgorithm) |
UseSalt |
古い.
11 バイト長、値 0 の salt を使用してキーを作成するかどうかを指定する値を取得または設定します。 |
メソッド
明示的なインターフェイスの実装
IDisposable.Dispose() |
この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。
古い.
SymmetricAlgorithm によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。 (継承元 SymmetricAlgorithm) |
適用対象
こちらもご覧ください
.NET