Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu kılavuzda, Üçlü Veri Şifreleme Standardı (3DES) algoritmasını TripleDES kullanarak dizeleri şifrelemek ve şifresini çözmek için sınıfının nasıl kullanılacağı gösterilmektedir. İlk adım, 3DES algoritmasını kapsülleyen ve şifrelenmiş verileri base-64 kodlanmış bir dize olarak depolayan basit bir sarmalayıcı sınıfı oluşturmaktır. Ardından bu sarmalayıcı, özel kullanıcı verilerini genel olarak erişilebilen bir metin dosyasında güvenli bir şekilde depolamak için kullanılır.
Kullanıcı gizli dizilerini (örneğin, parolalar) korumak ve kimlik bilgilerini yetkisiz kullanıcılar tarafından okunamaz hale getirmek için şifrelemeyi kullanabilirsiniz. Bu, yetkili bir kullanıcının kimliğinin çalınmasını önleyebilir ve bu da kullanıcının varlıklarını korur ve reddedilmemesini sağlar. Şifreleme, kullanıcının verilerinin yetkisiz kullanıcılar tarafından erişilmesini de engelleyebilir.
Daha fazla bilgi için bkz . Şifreleme Hizmetleri.
Önemli
Rijndael (şimdi Gelişmiş Şifreleme Standardı [AES] olarak adlandırılır) ve Üçlü Veri Şifreleme Standardı (3DES) algoritmaları, daha yoğun işlem gücü kullandıklarından DES'ten daha fazla güvenlik sağlar. Daha fazla bilgi için bkz. DES ve Rijndael.
Şifreleme sarmalayıcısını oluşturmak için
Simple3DesŞifreleme ve şifre çözme yöntemlerini kapsüllemek için sınıfını oluşturun.Public NotInheritable Class Simple3Des End ClassSimple3Dessınıfını içeren dosyanın başlangıcına cryptography ad alanının içeri aktarımını ekleyin.Imports System.Security.CryptographySimple3Dessınıfında, 3DES şifreleme hizmeti sağlayıcısını depolamak için özel bir alan ekleyin.Private TripleDes As TripleDES = TripleDES.Create()Belirtilen anahtarın karmasından belirtilen uzunlukta bir bayt dizisi oluşturan özel bir yöntem ekleyin.
Private Function TruncateHash( ByVal key As String, ByVal length As Integer) As Byte() Using sha256 As SHA256 = SHA256.Create() ' Hash the key. Dim keyBytes() As Byte = System.Text.Encoding.Unicode.GetBytes(key) Dim hash() As Byte = sha256.ComputeHash(keyBytes) ' Truncate or pad the hash. ReDim Preserve hash(length - 1) Return hash End Using End Function3DES şifreleme algoritmasını başlatmak için bir oluşturucu ekleyin.
keyparametresi,EncryptDataveDecryptDatayöntemlerini denetler.Sub New(ByVal key As String) ' Initialize the crypto provider. TripleDes.Key = TruncateHash(key, TripleDes.KeySize \ 8) TripleDes.IV = TruncateHash("", TripleDes.BlockSize \ 8) End SubBir dizeyi şifreleyen genel bir yöntem ekleyin.
Public Function EncryptData( ByVal plaintext As String) As String ' Convert the plaintext string to a byte array. Dim plaintextBytes() As Byte = System.Text.Encoding.Unicode.GetBytes(plaintext) ' Create the stream. Dim ms As New System.IO.MemoryStream ' Create the encoder to write to the stream. Dim encStream As New CryptoStream(ms, TripleDes.CreateEncryptor(), System.Security.Cryptography.CryptoStreamMode.Write) ' Use the crypto stream to write the byte array to the stream. encStream.Write(plaintextBytes, 0, plaintextBytes.Length) encStream.FlushFinalBlock() ' Convert the encrypted stream to a printable string. Return Convert.ToBase64String(ms.ToArray) End FunctionBir dizenin şifresini çözen genel bir yöntem ekleyin.
Public Function DecryptData( ByVal encryptedtext As String) As String ' Convert the encrypted text string to a byte array. Dim encryptedBytes() As Byte = Convert.FromBase64String(encryptedtext) ' Create the stream. Dim ms As New System.IO.MemoryStream ' Create the decoder to write to the stream. Dim decStream As New CryptoStream(ms, TripleDes.CreateDecryptor(), System.Security.Cryptography.CryptoStreamMode.Write) ' Use the crypto stream to write the byte array to the stream. decStream.Write(encryptedBytes, 0, encryptedBytes.Length) decStream.FlushFinalBlock() ' Convert the plaintext stream to a string. Return System.Text.Encoding.Unicode.GetString(ms.ToArray) End FunctionSarmalayıcı sınıfı artık kullanıcı varlıklarını korumak için kullanılabilir. Bu örnekte, özel kullanıcı verilerini genel olarak erişilebilen bir metin dosyasında güvenli bir şekilde depolamak için kullanılır.
Şifreleme sarmalayıcısını test etmek için
Ayrı bir sınıfta, bir dizeyi şifrelemek ve kullanıcının Belgelerim klasörüne yazmak için sarmalayıcının
EncryptDatayöntemini kullanan bir yöntem ekleyin.Sub TestEncoding() Dim plainText As String = InputBox("Enter the plain text:") Dim password As String = InputBox("Enter the password:") Dim wrapper As New Simple3Des(password) Dim cipherText As String = wrapper.EncryptData(plainText) MsgBox("The cipher text is: " & cipherText) My.Computer.FileSystem.WriteAllText( My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\cipherText.txt", cipherText, False) End SubKullanıcının Belgelerim klasöründen şifrelenmiş dizeyi okuyan ve sarmalayıcının
DecryptDatayöntemiyle dizenin şifresini çözen bir yöntem ekleyin.Sub TestDecoding() Dim cipherText As String = My.Computer.FileSystem.ReadAllText( My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\cipherText.txt") Dim password As String = InputBox("Enter the password:") Dim wrapper As New Simple3Des(password) ' DecryptData throws if the wrong password is used. Try Dim plainText As String = wrapper.DecryptData(cipherText) MsgBox("The plain text is: " & plainText) Catch ex As System.Security.Cryptography.CryptographicException MsgBox("The data could not be decrypted with the password.") End Try End SubKullanıcı arabirimi kodu ekleyerek
TestEncodingveTestDecodingyöntemlerini çağırın.Uygulamayı çalıştırın.
Uygulamayı test ettiğinizde, yanlış parola sağladığınızda verilerin şifresinin çözülmediğine dikkat edin.