467,885 Members | 1,311 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 467,885 developers. It's quick & easy.

Encryption

Hope someone can help or have a free control. I am going to be passing
data from a client computer to a server via a winsock control. I want
to encrypt/decript the contents of the string that is passed back and
forth. Anyone have any ideas?

David
Jul 17 '05 #1
  • viewed: 6040
Share:
2 Replies
Are you using VB6 or .Net? .Net has an encryption class you could use
- System.Security.Cryptography

Here is the code for a DLL I use for that same reason. The Sub Main
routine is commented out, it will generate a key, but I use the same
one, so I don't need this part.

========================================

Imports System
Imports System.IO
Imports System.Security
Imports System.Security.Cryptography
Imports System.Runtime.InteropServices
Imports System.Text
Public Class Class1
' Call this function to remove the key from memory after it is
used for security.
<DllImport("kernel32.dll")> _
Public Sub ZeroMemory(ByVal addr As IntPtr, ByVal size As Integer)
End Sub

' Function to generate a 64-bit key.
Function GenerateKey() As String
' Create an instance of a symmetric algorithm. The key and the
IV are generated automatically.
Dim desCrypto As DESCryptoServiceProvider =
DESCryptoServiceProvider.Create()

' Use the automatically generated key for encryption.
Return ASCIIEncoding.ASCII.GetString(desCrypto.Key)

End Function

Public Shared Function EncryptFile(ByVal sInputFilename As String,
_
ByVal sOutputFilename As String, _
ByVal sKey As String) As String

On Error GoTo errhandle

Dim fsInput As New FileStream(sInputFilename, _
FileMode.Open, FileAccess.Read)
Dim fsEncrypted As New FileStream(sOutputFilename, _
FileMode.Create, FileAccess.Write)

Dim DES As New DESCryptoServiceProvider

'Set secret key for DES algorithm.
'A 64-bit key and an IV are required for this provider.
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey)

'Set the initialization vector.
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey)

'Create the DES encryptor from this instance.
Dim desencrypt As ICryptoTransform = DES.CreateEncryptor()
'Create the crypto stream that transforms the file stream by
using DES encryption.
Dim cryptostream As New CryptoStream(fsEncrypted, _
desencrypt, _
CryptoStreamMode.Write)

'Read the file text to the byte array.
Dim bytearrayinput(fsInput.Length - 1) As Byte
fsInput.Read(bytearrayinput, 0, bytearrayinput.Length)
'Write out the DES encrypted file.
cryptostream.Write(bytearrayinput, 0, bytearrayinput.Length)
cryptostream.Close()

Return sOutputFilename

Exit Function

errhandle:
Return "Error Encrypting File!" & vbCrLf & Err.Description

End Function

Public Shared Function DecryptFile(ByVal sInputFilename As String,
_
ByVal sOutputFilename As String, _
ByVal sKey As String) As String

On Error GoTo errhandle

Dim DES As New DESCryptoServiceProvider

'A 64-bit key and an IV are required for this provider.

'Set the secret key for the DES algorithm.
DES.Key() = ASCIIEncoding.ASCII.GetBytes(sKey)

'Set the initialization vector.
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey)

'Create the file stream to read the encrypted file back.
Dim fsread As New FileStream(sInputFilename, FileMode.Open,
FileAccess.Read)

'Create the DES decryptor from the DES instance.
Dim desdecrypt As ICryptoTransform = DES.CreateDecryptor()

'Create the crypto stream set to read and to do a DES
decryption transform on incoming bytes.
Dim cryptostreamDecr As New CryptoStream(fsread, desdecrypt,
CryptoStreamMode.Read)

'Print out the contents of the decrypted file.
Dim fsDecrypted As New StreamWriter(sOutputFilename)

fsDecrypted.Write(New
StreamReader(cryptostreamDecr).ReadToEnd)
fsDecrypted.Flush()
fsDecrypted.Close()

Return sOutputFilename

Exit Function

errhandle:
Return "Error Encrypting File!" & vbCrLf & Err.Description

End Function

Public Sub Main()
'Must be 64 bits, 8 bytes.
'Dim sSecretKey As String

' Get the key for the file to encrypt.
' You can distribute this key to the user who will decrypt the
file.
'sSecretKey = GenerateKey()

' For additional security, pin the key.
'Dim gch As GCHandle = GCHandle.Alloc(sSecreyKey,
GCHandleType.Pinned)
' Encrypt the file.
'EncryptFile(Application.StartupPath & "\settings.ini", _
' Application.StartupPath & "\Encrypted.txt", _
' sSecretKey)

' Decrypt the file.
'DecryptFile(application.StartupPath & "\Encrypted.txt", _
' application.StartupPath & "\Decrypted.txt", _
' sSecretKey)

' Remove the key from memory.
'ZeroMemory(gch.AddrOfPinnedObject(), sSecretKey.Length * 2)
'gch.Free()
End Sub
End Class

Hope this helps!

On 4 Aug 2004 10:24:58 -0700, dh*******@chestnut.org (David) wrote:
Hope someone can help or have a free control. I am going to be passing
data from a client computer to a server via a winsock control. I want
to encrypt/decript the contents of the string that is passed back and
forth. Anyone have any ideas?

David


Jul 17 '05 #2
dh*******@chestnut.org (David) wrote in message news:<83**************************@posting.google. com>...
Hope someone can help or have a free control. I am going to be passing
data from a client computer to a server via a winsock control. I want
to encrypt/decript the contents of the string that is passed back and
forth. Anyone have any ideas?

David


Thanks, but never mind. I found it.

David
Jul 17 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by Cliff | last post: by
2 posts views Thread by Sumit Gupta | last post: by
4 posts views Thread by pintu | last post: by
1 post views Thread by =?Utf-8?B?bWljcm9ob2Y=?= | last post: by
11 posts views Thread by John Williams | last post: by
22 posts views Thread by j1mb0jay | last post: by
reply views Thread by MrMoon | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.