Basic Encryption

narmi2
narmi2 used Ask the Experts™
on
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
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
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
Mike TomlinsonHigh School Computer Science, Computer Applications, Digital Design, and Mathematics Teacher
Top Expert 2009

Commented:
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.

Author

Commented:
Idle Mind how would i reverse that?  so it does the opposite?
Learn Ruby Fundamentals

This course will introduce you to Ruby, as well as teach you about classes, methods, variables, data structures, loops, enumerable methods, and finishing touches.

Mike TomlinsonHigh School Computer Science, Computer Applications, Digital Design, and Mathematics Teacher
Top Expert 2009

Commented:
Define opposite?

You mean so that "abc" becomes "def"?

Author

Commented:
gangwisch - i get an error with your code saying "property char is read only"

Author

Commented:
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.
High School Computer Science, Computer Applications, Digital Design, and Mathematics Teacher
Top Expert 2009
Commented:
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

Author

Commented:
perfec :)
Mike TomlinsonHigh School Computer Science, Computer Applications, Digital Design, and Mathematics Teacher
Top Expert 2009

Commented:
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
Mike TomlinsonHigh School Computer Science, Computer Applications, Digital Design, and Mathematics Teacher
Top Expert 2009

Commented:
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
Mohamed ZedanSenior IT Analyst

Commented:
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.
:)
Mohamed ZedanSenior IT Analyst

Commented:
sorry i was too late :)

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial