An Improved szEncryptDecrypt VB6 Funtion

This is an improvement to the tip “Encrypt a String Easily.” I found that the szEncryptDecrypt function in this tip did not handle unicode strings properly, but otherwise worked well. The changes in the following version should work for any string by explicitly converting each character to ASCII and back. As with the other function, this is not strong encryption, but it is fast and will dissuade 99 percent of people.

'simple encryption function obtained from'written by Rob Bovey 'updated by Scott LikelyFunction szEncryptDecrypt(ByVal szData As String, ByVal salt As String, ByVal pepper As String) As String    ''' salt is a key value can be changed to alter the     ''' encryption, but it must be the same for both    ''' encryption and decryption.    ''' pepper is optional, and may be any    ''' value 0-64.    ''' Likewise, it needs to be the same coming/going.    Dim bytKey() As Byte    Dim bytData() As Byte    Dim lNum As Long    Dim szKey As String    Dim strOutput As String    'use a default key if none given    If Len(salt) = 0 Then salt = "123456"        'make sure the key is as long as the text we want to encode    For lNum = 1 To ((Len(szData) / Len(salt)) + 1)        szKey = szKey & salt    Next lNum        ReDim bytKey(Len(szData)) As Byte    ReDim bytData(Len(szData)) As Byte        'copy the key into the key byte array    'must do it this way to avoid unicode problems    'make it no longer than the text we want to encode    For lNum = 1 To Len(szData)        bytKey(lNum) = Asc(Mid$(szKey, lNum, 1))    Next lNum        'copy the text we want to encode into the data byte array    'must do it this way to avoid unicode problems    For lNum = 1 To Len(szData)        bytData(lNum) = Asc(Mid$(szData, lNum, 1))    Next lNum        strOutput = ""    For lNum = 1 To UBound(bytData)        If lNum Mod 2 Then            bytData(lNum) = bytData(lNum) Xor (bytKey(lNum) + pepper)            strOutput = strOutput & Chr(bytData(lNum))        Else            bytData(lNum) = bytData(lNum) Xor (bytKey(lNum) - pepper)            strOutput = strOutput & Chr(bytData(lNum))        End If    Next lNum    szEncryptDecrypt = strOutputEnd Function
Share the Post:
Share on facebook
Share on twitter
Share on linkedin


The Latest

iOS app development

The Future of iOS App Development: Trends to Watch

When it launched in 2008, the Apple App Store only had 500 apps available. By the first quarter of 2022, the store had about 2.18 million iOS-exclusive apps. Average monthly app releases for the platform reached 34,000 in the first half of 2022, indicating rapid growth in iOS app development.

microsoft careers

Top Careers at Microsoft

Microsoft has gained its position as one of the top companies in the world, and Microsoft careers are flourishing. This multinational company is efficiently developing popular software and computers with other consumer electronics. It is a dream come true for so many people to acquire a high paid, high-prestige job

your company's audio

4 Areas of Your Company Where Your Audio Really Matters

Your company probably relies on audio more than you realize. Whether you’re creating a spoken text message to a colleague or giving a speech, you want your audio to shine. Otherwise, you could cause avoidable friction points and potentially hurt your brand reputation. For example, let’s say you create a