RC2CryptoServiceProvider.UseSalt 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得或設定一個值,此值決定了是否要建立 11 位元組長、零值 Salt 的金鑰。
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
屬性值
若要建立 11 位元組長、零值 Salt 的金鑰即為 true
,否則為 false
。 預設為 false
。
- 屬性
範例
下列程式碼範例會將 UseSalt 屬性設定為 true
,然後加密和解密值。
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
備註
屬性 UseSalt 可讓您與使用 11 位元組長、零值 salt 的現有應用程式交互操作。 在大部分情況下,您不應該使用 salt 搭配 RC2CryptoServiceProvider 金鑰。
適用於
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應