Solved

Basic Encryption

Posted on 2006-10-19
12
239 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 85

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
 
LVL 85

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
Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

 
LVL 85

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 85

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 85

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

Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

Join & Write a Comment

I think the Typed DataTable and Typed DataSet are very good options when working with data, but I don't like auto-generated code. First, I create an Abstract Class for my DataTables Common Code.  This class Inherits from DataTable. Also, it can …
A while ago, I was working on a Windows Forms application and I needed a special label control with reflection (glass) effect to show some titles in a stylish way. I've always enjoyed working with graphics, but it's never too clever to re-invent …
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

747 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

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now