クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
.NET 開発
.NET Framework 3.5
.NET Framework 3.5
RSACryptoServiceProvider クラス
 Encrypt メソッド
すべて縮小/すべて展開 すべて縮小
このページは次のバージョンについて記述しています。
Microsoft Visual Studio 2008/.NET Framework 3.5

その他のバージョンについては、以下の情報を参照してください。
.NET Framework クラス ライブラリ
RSACryptoServiceProvider..::.Encrypt メソッド

更新 : 2007 年 11 月

RSA アルゴリズムでデータを暗号化します。

名前空間 :  System.Security.Cryptography
アセンブリ :  mscorlib (mscorlib.dll 内)

Visual Basic (宣言)
Public Function Encrypt ( _
    rgb As Byte(), _
    fOAEP As Boolean _
) As Byte()
Visual Basic (使用法)
Dim instance As RSACryptoServiceProvider
Dim rgb As Byte()
Dim fOAEP As Boolean
Dim returnValue As Byte()

returnValue = instance.Encrypt(rgb, fOAEP)
C#
public byte[] Encrypt(
    byte[] rgb,
    bool fOAEP
)
Visual C++
public:
array<unsigned char>^ Encrypt(
    array<unsigned char>^ rgb, 
    bool fOAEP
)
J#
public byte[] Encrypt(
    byte[] rgb,
    boolean fOAEP
)
JScript
public function Encrypt(
    rgb : byte[], 
    fOAEP : boolean
) : byte[]

パラメータ

rgb
型 : array<System..::.Byte>[]()[]

暗号化されるデータ。

fOAEP
型 : System..::.Boolean

Microsoft Windows XP 以降を実行するコンピュータだけで使用できる OAEP パディングを使用して、直接 RSA 暗号化を実行する場合は true。それ以外の場合は、PKCS#1 v1.5 パディングを使用することを表す false

戻り値

型 : array<System..::.Byte>[]()[]

暗号化されたデータ。

例外条件
CryptographicException

暗号化サービス プロバイダ (CSP) を取得できません。

または

rgb パラメータの長さが許可された最大長を超えています。

または

fOAEP パラメータが true で、OAEP パディングがサポートされていません。

ArgumentNullException

rgb nullNothingnullptrnull 参照 (Visual Basic では Nothing) です。

Microsoft Windows の各バージョンがサポートしているパディングと、オペレーティング システムとパディングの各組み合わせで許可される rgb の最大長の一覧表を次に示します。

パディング

サポートされるオペレーティング システム

rgb パラメータの最大長

OAEP パディング (PKCS#1 v2)

Microsoft Windows XP 以降。

剰余サイズ -2 -2*hLen (hLen はハッシュのサイズ)。

Direct Encryption (PKCS#1 v1.5)

高度暗号化パックがインストールされている Microsoft Windows 2000 以降。

剰余サイズ - 11 (11 バイトは最小パディング サイズ)。

Direct Encryption、OAEP パディングともにサポートなし

Microsoft Windows 98、Microsoft Windows Millennium、および高度暗号化パックがインストールされていない Windows 2000 以降。

対称キーで許容される最大サイズ。

このメソッドの結果を復号化するには、Decrypt を使用します。

RSACryptoServiceProvider オブジェクトを (相手から送信された) 公開キーの値に初期化し、RijndaelManaged アルゴリズムを使用してセッション キーを生成して、RSACryptoServiceProvider オブジェクトを使用してセッション キーを暗号化するコード例を次に示します。この方式を使用すると、セッション キーを RSA 秘密キーの所有者に返送し、双方でセッション キーを使用して、暗号化されたデータを交換できます。

Visual Basic
Imports System
Imports System.Security.Cryptography

Class RSACSPSample

    Shared Sub Main()
        Try
            'initialze the byte arrays to the public key information.
            Dim PublicKey As Byte() = {214, 46, 220, 83, 160, 73, 40, 39, 201, 155, 19, 202, 3, 11, 191, 178, 56, 74, 90, 36, 248, 103, 18, 144, 170, 163, 145, 87, 54, 61, 34, 220, 222, 207, 137, 149, 173, 14, 92, 120, 206, 222, 158, 28, 40, 24, 30, 16, 175, 108, 128, 35, 230, 118, 40, 121, 113, 125, 216, 130, 11, 24, 90, 48, 194, 240, 105, 44, 76, 34, 57, 249, 228, 125, 80, 38, 9, 136, 29, 117, 207, 139, 168, 181, 85, 137, 126, 10, 126, 242, 120, 247, 121, 8, 100, 12, 201, 171, 38, 226, 193, 180, 190, 117, 177, 87, 143, 242, 213, 11, 44, 180, 113, 93, 106, 99, 179, 68, 175, 211, 164, 116, 64, 148, 226, 254, 172, 147}

            Dim Exponent As Byte() = {1, 0, 1}

            'Values to store encrypted symmetric keys.
            Dim EncryptedSymmetricKey() As Byte
            Dim EncryptedSymmetricIV() As Byte

            'Create a new instance of RSACryptoServiceProvider.
            Dim RSA As New RSACryptoServiceProvider()

            'Create a new instance of RSAParameters.
            Dim RSAKeyInfo As New RSAParameters()

            'Set RSAKeyInfo to the public key values. 
            RSAKeyInfo.Modulus = PublicKey
            RSAKeyInfo.Exponent = Exponent

            'Import key parameters into RSA.
            RSA.ImportParameters(RSAKeyInfo)

            'Create a new instance of the RijndaelManaged class.
            Dim RM As New RijndaelManaged()

            'Encrypt the symmetric key and IV.
            EncryptedSymmetricKey = RSA.Encrypt(RM.Key, False)
            EncryptedSymmetricIV = RSA.Encrypt(RM.IV, False)

            Console.WriteLine("RijndaelManaged Key and IV have been encrypted with RSACryptoServiceProvider.")

            'Catch and display a CryptographicException  
            'to the console.
        Catch e As CryptographicException
            Console.WriteLine(e.Message)
        End Try
    End Sub
End Class
C#
using System;
using System.Security.Cryptography;

class RSACSPSample
{

    static void Main()
    {
        try
        {        //initialze the byte arrays to the public key information.
            byte[] PublicKey = {214,46,220,83,160,73,40,39,201,155,19,202,3,11,191,178,56,
                                   74,90,36,248,103,18,144,170,163,145,87,54,61,34,220,222,
                                   207,137,149,173,14,92,120,206,222,158,28,40,24,30,16,175,
                                   108,128,35,230,118,40,121,113,125,216,130,11,24,90,48,194,
                                   240,105,44,76,34,57,249,228,125,80,38,9,136,29,117,207,139,
                                   168,181,85,137,126,10,126,242,120,247,121,8,100,12,201,171,
                                   38,226,193,180,190,117,177,87,143,242,213,11,44,180,113,93,
                                   106,99,179,68,175,211,164,116,64,148,226,254,172,147};

            byte[] Exponent = {1,0,1};

            //Values to store encrypted symmetric keys.
            byte[] EncryptedSymmetricKey;
            byte[] EncryptedSymmetricIV;

            //Create a new instance of RSACryptoServiceProvider.
            RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();

            //Create a new instance of RSAParameters.
            RSAParameters RSAKeyInfo = new RSAParameters();

            //Set RSAKeyInfo to the public key values. 
            RSAKeyInfo.Modulus = PublicKey;
            RSAKeyInfo.Exponent = Exponent;

            //Import key parameters into RSA.
            RSA.ImportParameters(RSAKeyInfo);

            //Create a new instance of the RijndaelManaged class.
            RijndaelManaged RM = new RijndaelManaged();

            //Encrypt the symmetric key and IV.
            EncryptedSymmetricKey = RSA.Encrypt(RM.Key, false);
            EncryptedSymmetricIV = RSA.Encrypt(RM.IV, false);

            Console.WriteLine("RijndaelManaged Key and IV have been encrypted with RSACryptoServiceProvider."); 
        
        }
        //Catch and display a CryptographicException  
        //to the console.
        catch(CryptographicException e)
        {
            Console.WriteLine(e.Message);
        }
    }
}
Visual C++
#using <System.dll>

using namespace System;
using namespace System::Security::Cryptography;
int main()
{
   try
   {

      //initialze the Byte arrays to the public key information.
      array<Byte>^PublicKey = {214,46,220,83,160,73,40,39,201,155,19,202,3,11,191,178,56,74,90,36,248,103,18,144,170,163,145,87,54,61,34,220,222,207,137,149,173,14,92,120,206,222,158,28,40,24,30,16,175,108,128,35,230,118,40,121,113,125,216,130,11,24,90,48,194,240,105,44,76,34,57,249,228,125,80,38,9,136,29,117,207,139,168,181,85,137,126,10,126,242,120,247,121,8,100,12,201,171,38,226,193,180,190,117,177,87,143,242,213,11,44,180,113,93,106,99,179,68,175,211,164,116,64,148,226,254,172,147};
      array<Byte>^Exponent = {1,0,1};

      //Values to store encrypted symmetric keys.
      array<Byte>^EncryptedSymmetricKey;
      array<Byte>^EncryptedSymmetricIV;

      //Create a new instance of RSACryptoServiceProvider.
      RSACryptoServiceProvider^ RSA = gcnew RSACryptoServiceProvider;

      //Create a new instance of RSAParameters.
      RSAParameters RSAKeyInfo;

      //Set RSAKeyInfo to the public key values. 
      RSAKeyInfo.Modulus = PublicKey;
      RSAKeyInfo.Exponent = Exponent;

      //Import key parameters into RSA.
      RSA->ImportParameters( RSAKeyInfo );

      //Create a new instance of the RijndaelManaged class.
      RijndaelManaged^ RM = gcnew RijndaelManaged;

      //Encrypt the symmetric key and IV.
      EncryptedSymmetricKey = RSA->Encrypt( RM->Key, false );
      EncryptedSymmetricIV = RSA->Encrypt( RM->IV, false );
      Console::WriteLine( "RijndaelManaged Key and IV have been encrypted with RSACryptoServiceProvider." );
   }
   catch ( CryptographicException^ e ) 
   {

      //Catch and display a CryptographicException  
      //to the console.
      Console::WriteLine( e->Message );
   }

}

J#
import System.*;
import System.Security.Cryptography.*;

class RSACSPSample
{
    public static void main(String[] args)
    {
        try {
            // initialze the byte arrays to the public key information.
            ubyte publicKey[] =  {214, 46, 220, 83, 160, 73, 40, 39, 201, 
                    155, 19, 202, 3, 11, 191, 178, 56, 74, 90, 36, 248, 
                    103, 18, 144, 170, 163, 145, 87, 54, 61, 34, 220, 
                    222, 207, 137, 149, 173, 14, 92, 120, 206, 222, 
                    158, 28, 40, 24, 30, 16, 175, 108, 128, 35, 
                    230, 118, 40, 121, 113, 125, 216, 130, 11, 
                    24, 90, 48, 194, 240, 105, 44, 76, 34, 57, 
                    249, 228, 125, 80, 38, 9, 136, 29, 117, 
                    207, 139, 168, 181, 85, 137, 126, 10, 126, 242, 120, 
                    247, 121, 8, 100, 12, 201, 171, 38, 226, 193, 180, 
                    190, 117, 177, 87, 143, 242, 213, 11, 44, 180, 113, 
                    93, 106, 99, 179, 68, 175, 211, 164, 116, 64, 148, 
                    226, 254, 172, 147};

            ubyte exponent[] =  {1, 0, 1};

            // Values to store encrypted symmetric keys.
            ubyte encryptedSymmetricKey[];
            ubyte encryptedSymmetricIV[];

            // Create a new instance of RSACryptoServiceProvider.
            RSACryptoServiceProvider rsa =  new RSACryptoServiceProvider();

            // Create a new instance of RSAParameters.
            RSAParameters rsaKeyInfo =  new RSAParameters();

            // Set rsaKeyInfo to the public key values. 
            rsaKeyInfo.Modulus = publicKey;
            rsaKeyInfo.Exponent = exponent;

            // Import key parameters into rsa.
            rsa.ImportParameters(rsaKeyInfo);

            // Create a new instance of the RijndaelManaged class.
            RijndaelManaged rm =  new RijndaelManaged();

            // Encrypt the symmetric key and IV.
            encryptedSymmetricKey = rsa.Encrypt(rm.get_Key(), false);
            encryptedSymmetricIV = rsa.Encrypt(rm.get_IV(), false);

            Console.WriteLine("RijndaelManaged Key and IV have been " 
                + "encrypted with RSACryptoServiceProvider.");
        } 
        // Catch and display a CryptographicException  
        // to the console.
        catch (CryptographicException e) {
            Console.WriteLine(e.get_Message());
        }
    } //main
} //RSACSPSample

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC

.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

.NET Framework

サポート対象 : 3.5、3.0、2.0、1.1、1.0

.NET Compact Framework

サポート対象 : 3.5、2.0
コミュニティ コンテンツ   コミュニティ コンテンツとは
新しいコンテンツの追加 RSS  注釈
Processing
© 2009 Microsoft Corporation. All rights reserved. 使用条件 | 商標 | プライバシー
Page view tracker