Hi DW peps.
I've used the following codes to crypt and save files now I want to decrypt it when I'm reading it so that let say I want to check if the saved password matchs the entered password which the saved password is saved on pc drive e.g. Drive D:.
I wont put all of my code but will put the code I used to crypt and save the crypted text in a file.
' ontop you need to import these files.
Imports System
Imports System.Security.Cryptography
Imports System.Collections
Imports System.Text
Private sub BtnRegist_Click()
Dim name As String
name = CStr(TextBox1.Text)
Dim sourceBytes1() As Byte = Encoding.ASCII.GetBytes(name)
' saving the crypted text.
Dim encodedBytes1() As Byte
' ne will be for name
Dim ne As String
encodedBytes1 = EncodeBytes(sourceBytes1)
ne = (Encoding.ASCII.GetString(encodedBytes1))
' writing to a file.
My.Computer.FileSystem.CreateDirectory("D:\Test")
My.Computer.FileSystem.WriteAllText("D:\Test\Name.txt", ne, True)
End sub
Private Function EncodeBytes(ByVal sourceBytes() As Byte) As Byte()
Dim currentPosition As Int16 = 0
Dim targetBytes(1024) As Byte
Dim sourceByteLength As Integer = sourceBytes.Length
' Create a DES encryptor from this instance to perform encryption.
Dim cryptoTransform As CryptoAPITransform
cryptoTransform = CType(desCSP.CreateEncryptor(), CryptoAPITransform)
' Retrieve the block size to read the bytes.
Dim inputBlockSize As Integer = cryptoTransform.InputBlockSize
' Retrieve the key handle.
Dim keyHandle As IntPtr = cryptoTransform.KeyHandle
' Retrieve the block size to write the bytes.
Dim outputBlockSize As Integer = cryptoTransform.OutputBlockSize
Try
' Determine if multiple blocks can be transformed.
If (cryptoTransform.CanTransformMultipleBlocks) Then
Dim numBytesRead As Int16 = 0
While (sourceByteLength - currentPosition >= inputBlockSize)
' Transform the bytes from currentposition in the
' sourceBytes array, writing the bytes to the targetBytes
' array.
numBytesRead = cryptoTransform.TransformBlock( _
sourceBytes, _
currentPosition, _
inputBlockSize, _
targetBytes, _
currentPosition)
' Advance the current position in the sourceBytes array.
currentPosition += numBytesRead
End While
' Transform the final block of bytes.
Dim finalBytes() As Byte
finalBytes = cryptoTransform.TransformFinalBlock( _
sourceBytes, _
currentPosition, _
sourceByteLength - currentPosition)
' Copy the contents of the finalBytes array to the targetBytes
' array.
finalBytes.CopyTo(targetBytes, currentPosition)
End If
Catch ex As Exception
MsgBox("Caught unexpected exception:" + _
ex.ToString() + vbCrLf)
End Try
' Determine if the current transform can be reused.
If (Not cryptoTransform.CanReuseTransform) Then
' Free up any used resources.
cryptoTransform.Clear()
End If
' Trim the extra bytes in the array that were not used.
Return TrimArray(targetBytes)
End Function
' Resize the dimensions of the array to a size that contains only valid
' bytes.
Private Function TrimArray(ByVal targetArray() As Byte) As Byte()
Dim enum1 As IEnumerator = targetArray.GetEnumerator()
Dim i As Int16 = 0
While (enum1.MoveNext())
If (enum1.Current.ToString().Equals("0")) Then
Exit While
End If
i += 1
End While
' Create a new array with the number of valid bytes.
Dim returnedArray(i - 1) As Byte
For j As Int16 = 0 To i - 1 Step 1
returnedArray(j) = targetArray(j)
Next
Return returnedArray
End Function
so now the main problem for me is to use another form e.g. this will be done on form1 and form2 will do decryption so that the files can be read and be matched and also be read by a human.