Rijndael Encryption DLL file
Please post all your completed software applications in here. This is for full software which you have created and wish to release and share with everyone.
5 posts
Page 1 of 1
I found this somewhere on my PC, you might need it for encryption. No idea how it works but it DOES work!
Every download gives me 1% to my VIP membership! Please download if you have enough credits
Every download gives me 1% to my VIP membership! Please download if you have enough credits
You do not have the required permissions to view the files attached to this post.
Practice makes perfect!
VIP since: 6-10-2011
VIP since: 6-10-2011
you need to instert it in ur project and use this code dont know exactly transelate the second bit of code with google transelator from Dutch to English to understand it. :P:
Code: Select all
Imports System.Security
Imports System.Security.Cryptography
Imports Rijndael
Dim i As Integer
Dim w As IO.StreamWriter
w = New IO.StreamWriter(CurDir() & "\pass.txt")
For i = 0 To ListBox1.Items.Count - 1
w.WriteLine(ListBox1.Items.Item(Rijndael.RijndaelCryptoLib.Encrypt(i, "234")))
Code: Select all
Imports System
Imports System.Text
Imports System.IO
Imports System.Security.Cryptography
Public Class RijndaelCryptoLib
''' In de overloaded Encrypt en Decrypt methoden worden onderstaande waarden
''' als default gebruikt. Dit is minder veilig, omdat deze waarden in de
''' assembly zichtbaar zijn.
Private Shared _saltValue As String = ""
Private Shared _hashAlgorithm As String = "SHA1"
Private Shared _passwordIterations As Integer = 2
Private Shared _initVector = "$22@1dK#20h*dmKl"
Private Shared _keySize = 256
''' <SUMMARY>
''' Versleutel tekst via het Rijndael symmetric key algorithme
''' en geef een base64-encoded resultaat terug.
''' Encrypt en Decrypt methode zijn overloaded; een uitgebreide of
''' eenvoudige parameter-set.
''' </SUMMARY>
''' <PARAM name="plainText">
''' Plaintext waarde die versleuteld moet worden.
''' </PARAM>
''' <PARAM name="passPhrase">
''' Sleutelzin van waaruit een pseudo-random password wordt afgeleid.
''' Dit afgeleide password wordt gebruikt om de encryptiesleutel te
''' genereren. Deze sleutelzin kan iedere string zijn. Er wordt wel
''' ASCII verondersteld.
''' </PARAM>
''' <PARAM name="saltValue">
''' De 'salt' waarde wordt gebruikt in combinatie met de passphrase om het
''' wachtwoord te genereren. Door de salt waarde wordt een dictionary attack
''' moeilijker omdat de ingevoerde sleutelzin niet direct voor de versleuteling
''' wordt gebruikt. Iedere 'salt' waarde is mogelijk. Er wordt wel
''' ASCII verondersteld.
''' </PARAM>
''' <PARAM name="hashAlgorithm">
''' Hash algorithm dat gebruikt wordt om het password te genereren. Mogelijke
''' waarden zijn : "MD5" en "SHA1". SHA1 hashes zijn wat langzamer maar
''' wel veiliger dan MD5 hashes.
''' </PARAM>
''' <PARAM name="passwordIterations">
''' Aantal iteraties dat gebruikt wordt om het wachtwoord te genereren.
''' Één of twee iteraties zijn genoeg.
''' </PARAM>
''' <PARAM name="initVector">
''' Initializatie vector (of IV). Deze waarde is nodig om het eerste blok data
''' te versleutelen. Voor de RijndaelManaged class IV moet deze waarde
''' precies 16 ASCII karacters lang zijn.
''' </PARAM>
''' <PARAM name="keySize">
''' Lengte van de encryptiesleutel in bits. Mogelijke waarden zijn: 128, 192, en 256.
''' Langere sleutels zijn veiliger dan kortere sleutels.
''' </PARAM>
''' <RETURNS>
''' Versleutelde waarde komt terug als base64-encoded string.
''' </RETURNS>
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
Return DoEncrypt(plainText, passPhrase, saltValue, hashAlgorithm, _
passwordIterations, initVector, keySize)
End Function
''' <SUMMARY>
''' Eenvoudige vorm van encryptie die gebruik maakt van standaard waarden voor
''' saltValue, hashAlgorithm, passwordIterations, initVector en keySize
''' </SUMMARY>
Public Shared Function Encrypt(ByVal plainText As String, ByVal passPhrase As String) As String
Return DoEncrypt(plainText, passPhrase, _saltValue, _hashAlgorithm, _
_passwordIterations, _initVector, _keySize)
End Function
''' <SUMMARY>
''' Ontsleutel een code via het Rijndael symmetric key algorithme.
''' </SUMMARY>
''' <PARAM name="cipherText">
''' Base64-geformatteerde ciphertext waarde.
''' </PARAM>
''' <PARAM name="passPhrase">
''' Sleutelzin van waaruit een pseudo-random password wordt afgeleid.
''' Dit afgeleide password wordt gebruikt om de encryptiesleutel te
''' genereren. Deze sleutelzin kan iedere string zijn. Er wordt wel
''' ASCII verondersteld.
''' </PARAM>
''' <PARAM name="saltValue">
''' De 'salt' waarde wordt gebruikt in combinatie met de passphrase om het
''' wachtwoord te genereren. Door de salt waarde wordt een dictionary attack
''' moeilijker omdat de ingevoerde sleutelzin niet direct voor de versleuteling
''' wordt gebruikt. Iedere 'salt' waarde is mogelijk. Er wordt wel
''' ASCII verondersteld.
''' </PARAM>
''' <PARAM name="hashAlgorithm">
''' Hash algorithm dat gebruikt wordt om het password te genereren. Mogelijke
''' waarden zijn : "MD5" en "SHA1". SHA1 hashes zijn wat langzamer maar
''' wel veiliger dan MD5 hashes.
''' </PARAM>
''' <PARAM name="passwordIterations">
''' Aantal iteraties dat gebruikt wordt om het wachtwoord te genereren.
''' Één of twee iteraties zijn genoeg.
''' </PARAM>
''' <PARAM name="initVector">
''' Initialization vector (of IV). Deze waarde is nodig om het eerste blok data
''' te versleutelen. Voor RijndaelManaged class IV moet deze waarde
''' precies 16 ASCII karacters lang zijn.
''' </PARAM>
''' <PARAM name="keySize">
''' Lengte van de encryptiesleutel in bits. Mogelijke waarden zijn: 128, 192, en 256.
''' Langere sleutels zijn veiliger dan kortere sleutels.
''' </PARAM>
''' <RETURNS>
''' Ontsleutelde waarde komt terug als base64-encoded string.
''' </RETURNS>
''' <REMARKS>
''' De meeste code in deze functie is gelijk aan de Encrypt
''' code. Om succesvol te kunnen ontsleutelen moeten alle parameters van
''' deze functie - op de cipherText waarde na - gelijk zijn aan de parameters van
''' de Encrypt functie die gebruikt is om de sleutel (ciphertext) te genereren.
''' </REMARKS>
Public Shared Function Decrypt(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
Return DoDecrypt(plainText, passPhrase, saltValue, hashAlgorithm, _
passwordIterations, initVector, keySize)
End Function
''' <SUMMARY>
''' Eenvoudige vorm van decryptie die gebruik maakt van standaard waarden voor
''' saltValue, hashAlgorithm, passwordIterations, initVector en keySize
''' </SUMMARY>
Public Shared Function Decrypt(ByVal plainText As String, ByVal passPhrase As String) As String
Return DoDecrypt(plainText, passPhrase, _saltValue, _hashAlgorithm, _
_passwordIterations, _initVector, _keySize)
End Function
''' <SUMMARY>
''' Private implementatie van de Encryptie functie
''' </SUMMARY>
Private Shared Function DoEncrypt(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
' Converteer de input strings in byte arrays.
' We gaan er van uit dat de strings alleen ASCII codes bevatten.
' Als de string ook Unicode karakters bevat, gebruik dan Unicode, UTF7, of UTF8
' encoding.
Dim initVectorBytes As Byte() = Encoding.ASCII.GetBytes(initVector)
Dim saltValueBytes As Byte() = Encoding.ASCII.GetBytes(saltValue)
' Converteer de plaintext in een byte array.
' We gaan er van uit dat plaintext alleen UTF8-encoded karakters bevat.
Dim plainTextBytes As Byte() = Encoding.UTF8.GetBytes(plainText)
' Eerst moeten we een wachtwoord creëren; daarvan wordt de sleutel afgeleid.
' Dit wachtwoord wordt gegenereerd vanuit de opgegeven sleutelzin en
' salt waarde via het opgegeven hash algorithme. Password creatie kan in
' verschillende iteraties tot stand komen.
Dim password As PasswordDeriveBytes = New PasswordDeriveBytes(passPhrase, _
saltValueBytes, hashAlgorithm, passwordIterations)
' Met het password maken we een reeks van pseudo-random bytes voor de encryptie
' sleutel. We specificeren de omvang van de sleutel in bytes ipv bits.
Dim keyBytes As Byte() = password.GetBytes(keySize / 8)
' Instantieer een niet geïnitialiseerd Rijndael encryptie object.
Dim symmetricKey As RijndaelManaged = New RijndaelManaged()
' We maken gebruik van de Cipher Block Chaining encryptie modus
' (CBC). Andere opties zijn ook mogelijk.
symmetricKey.Mode = CipherMode.CBC
' Genereer een encryptor vanuit de sleutel and initialisatie
' vector. De sleutelomvang is gebaseerd op het aantal key
' bytes.
Dim encryptor As ICryptoTransform = symmetricKey.CreateEncryptor( _
keyBytes, initVectorBytes)
' De versleutelde waarden worden bewaard in een memorystream.
Dim memoryStream As MemoryStream = New MemoryStream()
' Definieer de cryptographic stream (gebruik altijd Write mode voor de encryption).
Dim cryptoStream As CryptoStream = New CryptoStream(memoryStream, _
encryptor, _
CryptoStreamMode.Write)
' Start encryptie.
cryptoStream.Write(plainTextBytes, 0, plainTextBytes.Length)
' Beëindig encryptie.
cryptoStream.FlushFinalBlock()
' Converteer de versleutelde data van een memory stream in een byte array.
Dim cipherTextBytes As Byte() = memoryStream.ToArray()
' Sluit beide streams.
memoryStream.Close()
cryptoStream.Close()
' Converteer de versleutelde data in een base64-encoded string.
Dim cipherText As String = Convert.ToBase64String(cipherTextBytes)
' Geef de encrypted string terug.
Return cipherText
End Function
''' <SUMMARY>
''' Private implementatie van de Decryptie functie
''' </SUMMARY>
Private Shared Function DoDecrypt(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
' Converteer de input strings in byte arrays.
' We gaan er van uit dat de strings alleen ASCII codes bevatten.
' Als de string ook Unicode karakters bevat, gebruik dan Unicode, UTF7, of UTF8
' encoding.
Dim initVectorBytes As Byte() = Encoding.ASCII.GetBytes(initVector)
Dim saltValueBytes As Byte() = Encoding.ASCII.GetBytes(saltValue)
' Converteer de ciphertext in een byte array.
Dim cipherTextBytes As Byte() = Convert.FromBase64String(cipherText)
' Eerst moeten we een wachtwoord creëren, daarvan wordt de sleutel afgeleid.
' Dit wachtwoord wordt gegenereerd vanuit de opgegeven sleutelzin en
' salt waarde via het opgegeven hash algorithme. Password creatie kan in verschillende
' iteraties tot stand komen.
Dim password As PasswordDeriveBytes = New PasswordDeriveBytes(passPhrase, _
saltValueBytes, hashAlgorithm, passwordIterations)
' Met het password maken we een reeks van pseudo-random bytes voor de encryptie
' sleutel. We specificeren de omvang van de sleutel in bytes ipv bits.
Dim keyBytes As Byte() = password.GetBytes(keySize / 8)
' Instantie van een niet geïnitialiseerd Rijndael encryptie object.
Dim symmetricKey As RijndaelManaged = New RijndaelManaged()
' We maken gebruik van de Cipher Block Chaining encryptie modus
' (CBC). Andere opties zijn ook mogelijk.
symmetricKey.Mode = CipherMode.CBC
' Genereer een decryptor vanuit de sleutel and initializatie-
' vector. De sleutelomvang is gebaseerd op het aantal key
' bytes.
Dim decryptor As ICryptoTransform = symmetricKey.CreateDecryptor(keyBytes, _
initVectorBytes)
' Definieer een memory stream which waarin de encrypted data wordt bewaard.
Dim memoryStream As MemoryStream = New MemoryStream(cipherTextBytes)
' Definieer een cryptographic stream (gebruik altijd Read mode voor decryptie).
Dim cryptoStream As CryptoStream = New CryptoStream(memoryStream, _
decryptor, _
CryptoStreamMode.Read)
' We weten nu nog niet hoe groot de ontsleutelde data zal zijn,
' daarom alloceren we een buffer die groot genoeg is om de ciphertext in te bewaren
' de plaintext is namelijk nooit langer dan de ciphertext.
Dim plainTextBytes(cipherTextBytes.Length) As Byte
' Start ontsleuteling.
Dim decryptedByteCount As Integer = cryptoStream.Read(plainTextBytes, _
0, plainTextBytes.Length)
' Sluit beide streams.
memoryStream.Close()
cryptoStream.Close()
' Converteer de ontsleutelde data in een string.
' We nemen aan dat de originele plaintext string UTF8-encoded was.
Dim plainText As String = Encoding.UTF8.GetString(plainTextBytes, _
0, decryptedByteCount)
' We geven de ontsleutelde string terug.
Return plainText
End Function
End Class
Practice makes perfect!
VIP since: 6-10-2011
VIP since: 6-10-2011
mandai wrote:I found a translated version hereI searched for that site but couldnt find it anymore. you can see my reaction at the page ^^
Practice makes perfect!
VIP since: 6-10-2011
VIP since: 6-10-2011
5 posts
Page 1 of 1
Copyright Information
Copyright © Codenstuff.com 2020 - 2023