Solved

Basic Encryption

Posted on 2006-10-19
12
253 Views
Last Modified: 2012-08-14
Hi

how do i convert

a b c d e f g h i j k l m n o p q r s t u v w x y z

to

x y z a b c d e f g h i j k l m n o p q r s t u v w

basically just going back 3 characters

so if i type "narmi" in the textbox and click a button i should get "kxojg"

i think!! :)

thanks

narmi2
0
Comment
Question by:narmi2
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 4
  • 2
  • +1
12 Comments
 
LVL 10

Expert Comment

by:gangwisch
ID: 17767218
dim txt as string="abcd"

for i as integer=0 to origtxt.length-1
txt.chars(i)= asc(txt.chars(i))-3
'you will need to check if >80
next
0
 
LVL 86

Expert Comment

by:Mike Tomlinson
ID: 17767258
Another way:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim index As Integer
        Dim vals() As Char = "abcdefghijklmnopqrstuvwxyz".ToCharArray
        Dim input As New System.Text.StringBuilder(TextBox1.Text)
        For i As Integer = 0 To input.Length - 1
            index = Array.IndexOf(vals, input.Chars(i))
            If index <> -1 Then
                index = index - 3
                If index < 0 Then
                    index = vals.Length + index
                End If
                input.Chars(i) = vals(index)
            End If
        Next
        TextBox1.Text = input.ToString
    End Sub

This leaves any characters that are not "a-z" intact.
0
 
LVL 1

Author Comment

by:narmi2
ID: 17767404
Idle Mind how would i reverse that?  so it does the opposite?
0
PeopleSoft Has Never Been Easier

PeopleSoft Adoption Made Smooth & Simple!

On-The-Job Training Is made Intuitive & Easy With WalkMe's On-Screen Guidance Tool.  Claim Your Free WalkMe Account Now

 
LVL 86

Expert Comment

by:Mike Tomlinson
ID: 17767433
Define opposite?

You mean so that "abc" becomes "def"?
0
 
LVL 1

Author Comment

by:narmi2
ID: 17767444
gangwisch - i get an error with your code saying "property char is read only"
0
 
LVL 1

Author Comment

by:narmi2
ID: 17767458
idel mind,

i mean if i start off with "narmi" and click encrypt button, i get "kyojf"

then i want to click decrypt when "kyojf" is in the box which should give me "narmi" back again.
0
 
LVL 86

Accepted Solution

by:
Mike Tomlinson earned 500 total points
ID: 17767486
ah...duh...lol!

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim index As Integer
        Dim vals() As Char = "abcdefghijklmnopqrstuvwxyz".ToCharArray
        Dim input As New System.Text.StringBuilder(TextBox1.Text)
        For i As Integer = 0 To input.Length - 1
            index = Array.IndexOf(vals, input.Chars(i))
            If index <> -1 Then
                index = index - 3
                If index < 0 Then
                    index = vals.Length + index
                End If
                input.Chars(i) = vals(index)
            End If
        Next
        TextBox1.Text = input.ToString
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim index As Integer
        Dim vals() As Char = "abcdefghijklmnopqrstuvwxyz".ToCharArray
        Dim input As New System.Text.StringBuilder(TextBox1.Text)
        For i As Integer = 0 To input.Length - 1
            index = Array.IndexOf(vals, input.Chars(i))
            If index <> -1 Then
                index = index + 3
                If index > vals.GetUpperBound(0) Then
                    index = index - vals.Length
                End If
                input.Chars(i) = vals(index)
            End If
        Next
        TextBox1.Text = input.ToString
    End Sub
0
 
LVL 1

Author Comment

by:narmi2
ID: 17767511
perfec :)
0
 
LVL 86

Expert Comment

by:Mike Tomlinson
ID: 17767530
Written slightly more intelligently...

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        TextBox1.Text = Convert(TextBox1.Text, True)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        TextBox1.Text = Convert(TextBox1.Text, False)
    End Sub

    Public Function Convert(ByVal str As String, ByVal Encrypt As Boolean) As String
        Dim index As Integer
        Dim vals() As Char = "abcdefghijklmnopqrstuvwxyz".ToCharArray
        Dim input As New System.Text.StringBuilder(str)
        For i As Integer = 0 To input.Length - 1
            index = Array.IndexOf(vals, input.Chars(i))
            If index <> -1 Then
                If Encrypt Then
                    index = index - 3
                    If index < 0 Then
                        index = vals.Length + index
                    End If
                Else
                    index = index + 3
                    If index > vals.GetUpperBound(0) Then
                        index = index - vals.Length
                    End If
                End If
                input.Chars(i) = vals(index)
            End If
        Next
        Return input.ToString
    End Function
0
 
LVL 86

Expert Comment

by:Mike Tomlinson
ID: 17767560
If you want actual encryption (with a key that is) then see:
http://www.experts-exchange.com/Programming/Programming_Languages/Dot_Net/Q_21821682.html
0
 
LVL 7

Expert Comment

by:Mohamed Zedan
ID: 17767599
It's like this but first "narmi" encrypted is "kxojf"

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim index As Integer
        Dim vals() As Char = "abcdefghijklmnopqrstuvwxyz".ToCharArray
        Dim input As New System.Text.StringBuilder(TextBox1.Text)
        For i As Integer = 0 To input.Length - 1
            index = Array.IndexOf(vals, input.Chars(i))
            If index <> -1 Then
                index = index + 3
                'If index < 0 Then
                '    index = vals.Length + index
                'End If
                if index > vals.length -1  then
                    index = index - vals.length
                end if
                input.Chars(i) = vals(index)
            End If
        Next
        TextBox1.Text = input.ToString
    End Sub

I deduced that it's only a matter of reversing the - to +
and checking for the opposite condition for index.
:)
0
 
LVL 7

Expert Comment

by:Mohamed Zedan
ID: 17767611
sorry i was too late :)
0

Featured Post

[Live Webinar] The Cloud Skills Gap

As Cloud technologies come of age, business leaders grapple with the impact it has on their team's skills and the gap associated with the use of a cloud platform.

Join experts from 451 Research and Concerto Cloud Services on July 27th where we will examine fact and fiction.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you're writing a .NET application to connect to an Access .mdb database and use pre-existing queries that require parameters, you've come to the right place! Let's say the pre-existing query(qryCust) in Access takes a Date as a parameter and l…
Microsoft Reports are based on a report definition, which is an XML file that describes data and layout for the report, with a different extension. You can create a client-side report definition language (*.rdlc) file with Visual Studio, and build g…
NetCrunch network monitor is a highly extensive platform for network monitoring and alert generation. In this video you'll see a live demo of NetCrunch with most notable features explained in a walk-through manner. You'll also get to know the philos…
Visualize your data even better in Access queries. Given a date and a value, this lesson shows how to compare that value with the previous value, calculate the difference, and display a circle if the value is the same, an up triangle if it increased…

622 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question