|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ZiG Überflieger ![]() Anmeldedatum: 16.04.2008 Beiträge: 421 |
Datei in eine string variable einlesen? |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

Verfasst am: 10.07.2008, 23:03 |
|
| Visual Basic: [code]Imports System Imports System.IO Imports System.Text Imports System.Security.Cryptography Public Class Rijndael ' ' Encrypts specified plaintext using Rijndael symmetric key algorithm ' and returns a base64-encoded result. ' ' ' Plaintext value to be encrypted. ' ' ' Passphrase from which a pseudo-random password will be derived. The ' derived password will be used to generate the encryption key. ' Passphrase can be any string. In this example we assume that this ' passphrase is an ASCII string. ' ' ' Salt value used along with passphrase to generate password. Salt can ' be any string. In this example we assume that salt is an ASCII string. ' ' ' Hash algorithm used to generate password. Allowed values are: "MD5" and ' "SHA1". SHA1 hashes are a bit slower, but more secure than MD5 hashes. ' ' ' Number of iterations used to generate password. One or two iterations ' should be enough. ' ' ' Initialization vector (or IV). This value is required to encrypt the ' first block of plaintext data. For RijndaelManaged class IV must be ' exactly 16 ASCII characters long. ' ' ' Size of encryption key in bits. Allowed values are: 128, 192, and 256. ' Longer keys are more secure than shorter keys. ' ' ' Encrypted value formatted as a base64-encoded string. ' Public Shared Function Encrypt(ByVal plainText As String, _ ByVal passPhrase As String, _ ByVal saltValue As String, _ ByVal hashAlgorithm As String, _ ByVal passwordIterations As Integer, _ ByVal initVector As String, _ ByVal keySize As Integer) _ As String ' Convert strings into byte arrays. ' Let us assume that strings only contain ASCII codes. ' If strings include Unicode characters, use Unicode, UTF7, or UTF8 ' encoding. Dim initVectorBytes As Byte() initVectorBytes = Encoding.ASCII.GetBytes(initVector) Dim saltValueBytes As Byte() saltValueBytes = Encoding.ASCII.GetBytes(saltValue) ' Convert our plaintext into a byte array. ' Let us assume that plaintext contains UTF8-encoded characters. Dim plainTextBytes As Byte() plainTextBytes = Encoding.UTF8.GetBytes(plainText) ' First, we must create a password, from which the key will be derived. ' This password will be generated from the specified passphrase and ' salt value. The password will be created using the specified hash ' algorithm. Password creation can be done in several iterations. Dim password As PasswordDeriveBytes password = New PasswordDeriveBytes(passPhrase, saltValueBytes, hashAlgorithm, passwordIterations) ' Use the password to generate pseudo-random bytes for the encryption ' key. Specify the size of the key in bytes (instead of bits). Dim keyBytes As Byte() keyBytes = password.GetBytes(keySize / ![]() ' Create uninitialized Rijndael encryption object. Dim symmetricKey As RijndaelManaged symmetricKey = New RijndaelManaged() ' It is reasonable to set encryption mode to Cipher Block Chaining ' (CBC). Use default options for other symmetric key parameters. symmetricKey.Mode = CipherMode.CBC ' Generate encryptor from the existing key bytes and initialization ' vector. Key size will be defined based on the number of the key ' bytes. Dim encryptor As ICryptoTransform encryptor = symmetricKey.CreateEncryptor(keyBytes, initVectorBytes) ' Define memory stream which will be used to hold encrypted data. Dim memoryStream As MemoryStream memoryStream = New MemoryStream() ' Define cryptographic stream (always use Write mode for encryption). Dim cryptoStream As CryptoStream cryptoStream = New CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write) ' Start encrypting. cryptoStream.Write(plainTextBytes, 0, plainTextBytes.Length) ' Finish encrypting. cryptoStream.FlushFinalBlock() ' Convert our encrypted data from a memory stream into a byte array. Dim cipherTextBytes As Byte() cipherTextBytes = memoryStream.ToArray() ' Close both streams. memoryStream.Close() cryptoStream.Close() ' Convert encrypted data into a base64-encoded string. Dim cipherText As String cipherText = Convert.ToBase64String(cipherTextBytes) ' Return encrypted string. Encrypt = cipherText End Function ' ' Decrypts specified ciphertext using Rijndael symmetric key algorithm. ' ' ' Base64-formatted ciphertext value. ' ' ' Passphrase from which a pseudo-random password will be derived. The ' derived password will be used to generate the encryption key. ' Passphrase can be any string. In this example we assume that this ' passphrase is an ASCII string. ' ' ' Salt value used along with passphrase to generate password. Salt can ' be any string. In this example we assume that salt is an ASCII string. ' ' ' Hash algorithm used to generate password. Allowed values are: "MD5" and ' "SHA1". SHA1 hashes are a bit slower, but more secure than MD5 hashes. ' ' ' Number of iterations used to generate password. One or two iterations ' should be enough. ' ' ' Initialization vector (or IV). This value is required to encrypt the ' first block of plaintext data. For RijndaelManaged class IV must be ' exactly 16 ASCII characters long. ' ' ' Size of encryption key in bits. Allowed values are: 128, 192, and 256. ' Longer keys are more secure than shorter keys. ' ' ' Decrypted string value. ' ' ' Most of the logic in this function is similar to the Encrypt ' logic. In order for decryption to work, all parameters of this function ' - except cipherText value - must match the corresponding parameters of ' the Encrypt function which was called to generate the ' ciphertext. ' Public Shared Function Decrypt(ByVal cipherText As String, _ ByVal passPhrase As String, _ ByVal saltValue As String, _ ByVal hashAlgorithm As String, _ ByVal passwordIterations As Integer, _ ByVal initVector As String, _ ByVal keySize As Integer) As String ' Convert strings defining encryption key characteristics into byte ' arrays. Let us assume that strings only contain ASCII codes. ' If strings include Unicode characters, use Unicode, UTF7, or UTF8 ' encoding. Dim initVectorBytes As Byte() initVectorBytes = Encoding.ASCII.GetBytes(initVector) Dim saltValueBytes As Byte() saltValueBytes = Encoding.ASCII.GetBytes(saltValue) ' Convert our ciphertext into a byte array. Dim cipherTextBytes As Byte() cipherTextBytes = Convert.FromBase64String(cipherText) ' First, we must create a password, from which the key will be ' derived. This password will be generated from the specified ' passphrase and salt value. The password will be created using ' the specified hash algorithm. Password creation can be done in ' several iterations. Dim password As PasswordDeriveBytes password = New PasswordDeriveBytes(passPhrase, saltValueBytes, hashAlgorithm, passwordIterations) ' Use the password to generate pseudo-random bytes for the encryption ' key. Specify the size of the key in bytes (instead of bits). Dim keyBytes As Byte() keyBytes = password.GetBytes(keySize / ![]() ' Create uninitialized Rijndael encryption object. Dim symmetricKey As RijndaelManaged symmetricKey = New RijndaelManaged() ' It is reasonable to set encryption mode to Cipher Block Chaining ' (CBC). Use default options for other symmetric key parameters. symmetricKey.Mode = CipherMode.CBC ' Generate decryptor from the existing key bytes and initialization ' vector. Key size will be defined based on the number of the key ' bytes. Dim decryptor As ICryptoTransform decryptor = symmetricKey.CreateDecryptor(keyBytes, initVectorBytes) ' Define memory stream which will be used to hold encrypted data. Dim memoryStream As MemoryStream memoryStream = New MemoryStream(cipherTextBytes) ' Define memory stream which will be used to hold encrypted data. Dim cryptoStream As CryptoStream cryptoStream = New CryptoStream(memoryStream, decryptor, CryptoStreamMode.Read) ' Since at this point we don't know what the size of decrypted data ' will be, allocate the buffer long enough to hold ciphertext; ' plaintext is never longer than ciphertext. Dim plainTextBytes As Byte() ReDim plainTextBytes(cipherTextBytes.Length) ' Start decrypting. Dim decryptedByteCount As Integer decryptedByteCount = cryptoStream.Read(plainTextBytes, 0, plainTextBytes.Length) ' Close both streams. memoryStream.Close() cryptoStream.Close() ' Convert decrypted data into a string. ' Let us assume that the original plaintext string was UTF8-encoded. Dim plainText As String plainText = Encoding.UTF8.GetString(plainTextBytes, 0, decryptedByteCount) ' Return decrypted string. Decrypt = plainText End Function End Class[/code] Da hast du eine Rijndael Klasse. Anwendungsweise: Visual Basic: [code]Dim passPhrase, saltValue, hashAlgorithm, initVector, usr, pwd As String Dim passwordIterations, keySize As Integer passPhrase = "X9o3j5!Y86iU!pPe8u7,5lY!" ' irgend ein String mit dem verschlüsselt wird saltValue = "X9o3j6!Y86iU!pDe8u0,5lY!" ' irgend ein String mit dem verschlüsselt wird hashAlgorithm = "SHA1" ' kann MD5 sein passwordIterations = 2470 ' irgend ein Wert initVector = "@1B2c3D4e3q9z4p7" ' muss ein 16bit String sein keySize = 256 ' kann auch 192 oder 128 sein Rijndael.Encrypt("Plaintext zum verschlüsseln", passPhrase, saltValue, hashAlgorithm, passwordIterations, initVector, keySize) Rijndael.Decrypt("Hash zum entschlüsseln", passPhrase, saltValue, hashAlgorithm, passwordIterations, initVector, keySize)[/code] |
|

Verfasst am: 14.07.2008, 20:57 |
|
| Des verschlüsselt doch ein Text er will doch eine Datei verschlüsseln wie geht des ? | |

Verfasst am: 14.07.2008, 21:00 |
|
| Äääähh..... Wenn man die Datei einliest, isses auch nicht viel mehr als ein "Text". |
|

Verfasst am: 14.07.2008, 21:23 |
|
| Ja aber ich mein das man z.B. Browse hat drauf drückt und eine Datei auswählt, sie wird verschlüsselt und bei ausführen entschlüsselt. Wie würde das aussehen? |
|

Verfasst am: 15.07.2008, 09:28 |
|
|
Das hört sich nach einem Malware Crypter an. und dazu benötigst du eine Stub. Aber hier wird dir für sowas keine Hilfestellung gegeben. |
|
| Verwandte Themen | Aufrufe | Letzter Beitrag | |||
|---|---|---|---|---|---|
![]() |
Button/Text | 957 | 18.06.2009, 16:21 | ||
![]() |
E-Mail bekomm nach Button klicken | 712 | 02.10.2007, 17:45 | ||
![]() |
Bestimmten "Button" auf Website klicken | 1679 | 14.09.2007, 21:27 | ||
![]() |
webbrowser/ webformular button klicken | 1610 | 23.07.2007, 23:07 | ||
![]() |
Button drücken.. | 841 | 01.07.2007, 13:19 | ||
| [ Time: 0.4258s ][ Queries: 113 (0.2098s) ][ GZIP on - Debug on ] |