Aracılığıyla paylaş


RC2CryptoServiceProvider.UseSalt Özellik

Tanım

11 bayt uzunluğunda, sıfır değerli bir tuz ile anahtar oluşturulup oluşturulmayacağını belirleyen bir değer alır veya ayarlar.

public:
 property bool UseSalt { bool get(); void set(bool value); };
public bool UseSalt { get; [System.Runtime.Versioning.SupportedOSPlatform("windows")] set; }
public bool UseSalt { get; set; }
[System.Runtime.InteropServices.ComVisible(false)]
public bool UseSalt { get; set; }
[<set: System.Runtime.Versioning.SupportedOSPlatform("windows")>]
member this.UseSalt : bool with get, set
member this.UseSalt : bool with get, set
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.UseSalt : bool with get, set
Public Property UseSalt As Boolean

Özellik Değeri

true anahtarın 11 bayt uzunluğunda, sıfır değerli bir tuzla oluşturulması gerekiyorsa; aksi takdirde , false. Varsayılan değer: false.

Öznitelikler

Örnekler

Aşağıdaki kod örneği özelliğini olarak trueayarlar UseSalt ve ardından bir değeri şifreler ve şifresini çözer.

using namespace System;
using namespace System::IO;
using namespace System::Text;
using namespace System::Security::Cryptography;

int main()
{
    array <Byte>^ originalBytes = 
        ASCIIEncoding::ASCII->GetBytes("Here is some data.");

    //Create a new RC2CryptoServiceProvider.
    RC2CryptoServiceProvider^ rc2Provider = 
        gcnew RC2CryptoServiceProvider();
    rc2Provider->UseSalt = true;

    rc2Provider->GenerateKey();
    rc2Provider->GenerateIV();

    //Encrypt the data.
    MemoryStream^ encryptionMemoryStream = gcnew MemoryStream();
    CryptoStream^ encryptionCryptoStream = gcnew CryptoStream(
        encryptionMemoryStream, rc2Provider->CreateEncryptor(
        rc2Provider->Key, rc2Provider->IV), CryptoStreamMode::Write);

    //Write all data to the crypto stream and flush it.
    encryptionCryptoStream->Write(originalBytes, 0, originalBytes->Length);
    encryptionCryptoStream->FlushFinalBlock();

    //Get encrypted array of bytes.
    array<Byte>^ encryptedBytes = encryptionMemoryStream->ToArray();

    //Decrypt the previously encrypted message.
    MemoryStream^ decryptionMemoryStream = 
        gcnew MemoryStream(encryptedBytes);
    CryptoStream^ decryptionCryptoStream = 
        gcnew CryptoStream(decryptionMemoryStream,
        rc2Provider->CreateDecryptor(rc2Provider->Key,rc2Provider->IV),
        CryptoStreamMode::Read);

    array<Byte>^ unencryptedBytes = 
        gcnew array<Byte>(originalBytes->Length); 

    //Read the data out of the crypto stream.
    decryptionCryptoStream->Read(unencryptedBytes, 0, 
        unencryptedBytes->Length);

    //Convert the byte array back into a string.
    String^ plainText = ASCIIEncoding::ASCII->GetString(unencryptedBytes);

    //Display the results.
    Console::WriteLine("Unencrypted text: {0}", plainText);

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

namespace RC2CryptoServiceProvider_Examples
{
    class MyMainClass
    {
        public static void Main()
        {
            byte[] originalBytes = ASCIIEncoding.ASCII.GetBytes("Here is some data.");

        //Create a new RC2CryptoServiceProvider.
            RC2CryptoServiceProvider rc2CSP = new RC2CryptoServiceProvider();

            rc2CSP.UseSalt = true;

            rc2CSP.GenerateKey();
            rc2CSP.GenerateIV();

            //Encrypt the data.
            MemoryStream msEncrypt = new MemoryStream();
            CryptoStream csEncrypt = new CryptoStream(msEncrypt, rc2CSP.CreateEncryptor(rc2CSP.Key, rc2CSP.IV), CryptoStreamMode.Write);

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

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

            //Decrypt the previously encrypted message.
            MemoryStream msDecrypt = new MemoryStream(encryptedBytes);
            CryptoStream csDecrypt = new CryptoStream(msDecrypt, rc2CSP.CreateDecryptor(rc2CSP.Key, rc2CSP.IV), CryptoStreamMode.Read);

            byte[] unencryptedBytes = new byte[originalBytes.Length];

            //Read the data out of the crypto stream.
            csDecrypt.Read(unencryptedBytes, 0, unencryptedBytes.Length);

            //Convert the byte array back into a string.
            string plaintext = ASCIIEncoding.ASCII.GetString(unencryptedBytes);

            //Display the results.
            Console.WriteLine("Unencrypted text: {0}", plaintext);

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



Module MyMainModule

    Sub Main()
        Dim originalBytes As Byte() = ASCIIEncoding.ASCII.GetBytes("Here is some data.")

        'Create a new RC2CryptoServiceProvider.
        Dim rc2CSP As New RC2CryptoServiceProvider()

        rc2CSP.UseSalt = True

        rc2CSP.GenerateKey()
        rc2CSP.GenerateIV()

        'Encrypt the data.
        Dim msEncrypt As New MemoryStream()
        Dim csEncrypt As New CryptoStream(msEncrypt, rc2CSP.CreateEncryptor(rc2CSP.Key, rc2CSP.IV), CryptoStreamMode.Write)

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

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

        'Decrypt the previously encrypted message.
        Dim msDecrypt As New MemoryStream(encryptedBytes)
        Dim csDecrypt As New CryptoStream(msDecrypt, rc2CSP.CreateDecryptor(rc2CSP.Key, rc2CSP.IV), CryptoStreamMode.Read)

        Dim unencryptedBytes(originalBytes.Length - 1) As Byte

        'Read the data out of the crypto stream.
        csDecrypt.Read(unencryptedBytes, 0, unencryptedBytes.Length)

        'Convert the byte array back into a string.
        Dim plaintext As String = ASCIIEncoding.ASCII.GetString(unencryptedBytes)

        'Display the results.
        Console.WriteLine("Unencrypted text: {0}", plaintext)

        Console.ReadLine()

    End Sub
End Module

Açıklamalar

UseSalt özelliği, 11 bayt uzunluğunda, sıfır değerli bir tuz kullanan mevcut bir uygulamayla birlikte çalışmanızı sağlar. Çoğu senaryoda, bir anahtarla RC2CryptoServiceProvider tuz kullanmamalısınız.

Şunlara uygulanır

Ayrıca bkz.