RSACryptoServiceProvider.Encrypt Méthode
Définition
Important
Certaines informations concernent des produits en version préliminaire qui peuvent être considérablement modifiés avant leur sortie. Microsoft n’offre aucune garantie, expresse ou implicite, concernant les informations fournies ici.
Chiffre les données avec l’algorithme RSA.
Surcharges
| Nom | Description |
|---|---|
| Encrypt(Byte[], Boolean) |
Chiffre les données avec l’algorithme RSA. |
| Encrypt(Byte[], RSAEncryptionPadding) |
Chiffre les données avec l’algorithme RSA à l’aide du remplissage spécifié. |
Encrypt(Byte[], Boolean)
Chiffre les données avec l’algorithme RSA.
public:
cli::array <System::Byte> ^ Encrypt(cli::array <System::Byte> ^ rgb, bool fOAEP);
public byte[] Encrypt(byte[] rgb, bool fOAEP);
override this.Encrypt : byte[] * bool -> byte[]
member this.Encrypt : byte[] * bool -> byte[]
Public Function Encrypt (rgb As Byte(), fOAEP As Boolean) As Byte()
Paramètres
- rgb
- Byte[]
Données à chiffrer.
- fOAEP
- Boolean
true pour effectuer directement le chiffrement RSA à l’aide du remplissage OAEP (uniquement disponible sur un ordinateur exécutant Windows XP ou ultérieur) ; sinon, false pour utiliser le remplissage PKCS #1 v1.5.
Retourne
Données chiffrées.
Exceptions
Le fournisseur de services de chiffrement ne peut pas être acquis.
- ou -
La longueur du paramètre rgb est supérieure à la longueur maximale autorisée.
rgb a la valeur null.
Exemples
L’exemple de code suivant initialise un RSACryptoServiceProvider objet à la valeur d’une clé publique (envoyée par une autre partie), génère une clé de session à l’aide de l’algorithme Aes , puis chiffre la clé de session à l’aide de l’objet RSACryptoServiceProvider . À l’aide de ce schéma, la clé de session peut être renvoyée au propriétaire de la clé RSA privée et les deux parties peuvent utiliser la clé de session pour échanger des données chiffrées.
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 Aes class.
Aes aes = Aes.Create();
//Encrypt the symmetric key and IV.
EncryptedSymmetricKey = RSA.Encrypt(aes.Key, false);
EncryptedSymmetricIV = RSA.Encrypt(aes.IV, false);
Console.WriteLine("Aes Key and IV have been encrypted with RSACryptoServiceProvider.");
}
//Catch and display a CryptographicException
//to the console.
catch(CryptographicException e)
{
Console.WriteLine(e.Message);
}
}
}
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 Aes class.
Dim aes As Aes = Aes.Create()
'Encrypt the symmetric key and IV.
EncryptedSymmetricKey = RSA.Encrypt(aes.Key, False)
EncryptedSymmetricIV = RSA.Encrypt(aes.IV, False)
Console.WriteLine("Aes Key and IV have been encrypted with RSA.")
'Catch and display a CryptographicException
'to the console.
Catch e As CryptographicException
Console.WriteLine(e.Message)
End Try
End Sub
End Class
Remarques
Le tableau suivant décrit le remplissage pris en charge par différentes versions de Microsoft Windows et la longueur maximale autorisée rgb par les différentes combinaisons de systèmes d’exploitation et de remplissage.
| Remplissage | Longueur maximale du paramètre rvb |
|---|---|
| Remplissage OAEP (PKCS#1 v2) | Modulus size -2 -2*hLen, où hLen est la taille du hachage. |
| Chiffrement direct (PKCS#1 v1.5) | Taille du module - 11. (11 octets est le remplissage minimal possible.) |
Utilisez Decrypt pour déchiffrer les résultats de cette méthode.
Voir aussi
S’applique à
Encrypt(Byte[], RSAEncryptionPadding)
Chiffre les données avec l’algorithme RSA à l’aide du remplissage spécifié.
public:
override cli::array <System::Byte> ^ Encrypt(cli::array <System::Byte> ^ data, System::Security::Cryptography::RSAEncryptionPadding ^ padding);
public override byte[] Encrypt(byte[] data, System.Security.Cryptography.RSAEncryptionPadding padding);
override this.Encrypt : byte[] * System.Security.Cryptography.RSAEncryptionPadding -> byte[]
Public Overrides Function Encrypt (data As Byte(), padding As RSAEncryptionPadding) As Byte()
Paramètres
- data
- Byte[]
Données à chiffrer.
- padding
- RSAEncryptionPadding
Remplissage.
Retourne
Données chiffrées.
Exceptions
Le mode de remplissage n’est pas pris en charge.
Remarques
padding doit être ou RSAEncryptionPadding.Pkcs1RSAEncryptionPadding.OaepSHA1.