Encryption And Decryption Functions In Vb.Net
Imports:
1
2
3
4
5
6
| Imports System.Security Imports System.Security.Cryptography Imports System.IO Imports System.Runtime.InteropServices Imports System.Text.RegularExpressions Imports System.Text |
Encryption:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| Public Function Encrypt( ByVal plainText As String ) As String Dim passPhrase As String = "yourPassPhrase" Dim saltValue As String = "mySaltValue" Dim hashAlgorithm As String = "SHA1" Dim passwordIterations As Integer = 2 Dim initVector As String = "@1B2c3D4e5F6g7H8" Dim keySize As Integer = 256 Dim initVectorBytes As Byte () = Encoding.ASCII.GetBytes(initVector) Dim saltValueBytes As Byte () = Encoding.ASCII.GetBytes(saltValue) Dim plainTextBytes As Byte () = Encoding.UTF8.GetBytes(plainText) Dim password As New PasswordDeriveBytes(passPhrase, saltValueBytes, hashAlgorithm, passwordIterations) Dim keyBytes As Byte () = password.GetBytes(keySize \ 8) Dim symmetricKey As New RijndaelManaged() symmetricKey.Mode = CipherMode.CBC Dim encryptor As ICryptoTransform = symmetricKey.CreateEncryptor(keyBytes, initVectorBytes) Dim memoryStream As New MemoryStream() Dim cryptoStream As New CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write) cryptoStream.Write(plainTextBytes, 0, plainTextBytes.Length) cryptoStream.FlushFinalBlock() Dim cipherTextBytes As Byte () = memoryStream.ToArray() memoryStream.Close() cryptoStream.Close() Dim cipherText As String = Convert.ToBase64String(cipherTextBytes) Return cipherText End Function |
Decryption
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
| Public Function Decrypt( ByVal cipherText As String ) As String Dim passPhrase As String = "yourPassPhrase" Dim saltValue As String = "mySaltValue" Dim hashAlgorithm As String = "SHA1" Dim passwordIterations As Integer = 2 Dim initVector As String = "@1B2c3D4e5F6g7H8" Dim keySize As Integer = 256 ' 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 () = Encoding.ASCII.GetBytes(initVector) Dim saltValueBytes As Byte () = Encoding.ASCII.GetBytes(saltValue) ' Convert our ciphertext into a byte array. Dim cipherTextBytes As Byte () = 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 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 () = password.GetBytes(keySize \ 8) ' Create uninitialized Rijndael encryption object. Dim symmetricKey As 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 = symmetricKey.CreateDecryptor(keyBytes, initVectorBytes) ' Define memory stream which will be used to hold encrypted data. Dim memoryStream As New MemoryStream(cipherTextBytes) ' Define cryptographic stream (always use Read mode for encryption). Dim cryptoStream As 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 () = New Byte (cipherTextBytes.Length - 1) {} ' Start decrypting. Dim decryptedByteCount As Integer = 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 = Encoding.UTF8.GetString(plainTextBytes, 0, decryptedByteCount) ' Return decrypted string. Return plainText End Function |
Example:
1
2
3
4
5
| Dim strEncryptedText As String strEncryptedText = Encrypt( "yourEncryptionText" ) Dim strDecrptedText As String strDecrptedText = Decrypt(strEncryptedText) |
You can easily set the passphrase, saltvalue and bits to your liking..
For More Info Go to:
http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndael.aspx
Comments
Post a Comment