Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Basic Encryption

Posted on 2006-10-19
12
Medium Priority
?
263 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
  • 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
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
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 2000 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

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

Well, all of us have seen the multiple EXCEL.EXE's in task manager that won't die even if you call the .close, .dispose methods. Try this method to kill any excels in memory. You can copy the kill function to create a check function and replace the …
Since .Net 2.0, Visual Basic has made it easy to create a splash screen and set it via the "Splash Screen" drop down in the Project Properties.  A splash screen set in this manner is automatically created, displayed and closed by the framework itsel…
Integration Management Part 2
Want to learn how to record your desktop screen without having to use an outside camera. Click on this video and learn how to use the cool google extension called "Screencastify"! Step 1: Open a new google tab Step 2: Go to the left hand upper corn…

772 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