Brettb.Com
  HOME | ABOUT ME | BIOTECHNOLOGY | ARTICLES | GALLERY | CONTACT
Search: Go
TECHNICAL ARTICLES
 ASP
 ASP.NET
 JavaScript
 Transact SQL
 Other Articles
 Software Reviews

PHOTO GALLERIES
 Canon EOS 300D Samples
 Akihabara Maids!
 More Galleries...

TRAVEL LOG
 2009: China
 2008: Tokyo
 2007: Tokyo
 2006: Hong Kong
 2005: New York City

MORE STUFF
 Search Engine Optimisation
 Build an ASP Search Engine
 My Tropical Fishtank
 Autoglass
 SQL Month Name
 SQL Get Date Today
 SQL Year Month
 Other New Stuff...

POPULAR STUFF
 Regular Expressions
 Index Server & ASP
 JavaScript Ad Rotator

Home > ASP.NET Articles

ROT13 Encoding in ASP.NET using C# and VB.NET

This article is based on an article I wrote that described how to encode and decode strings using the ROT13 method in ASP (VBScript and JScript) and client-side JavaScript. The ROT13 method is a very old method of encoding (but not encrypting!) text, but given the original article's popularity I thought it would be useful to update it for the .NET Framework using both C# and VB.NET.

ROT13 Encoding Using VB.NET

In this example, a ROT13 encoding/decoding function is created as a function named ROT13Encode within a class called TextEncoder. The code for the TextEncoder class is shown below. The class can be compiled into a binary component file, ROT13Converter.dll by using the following syntax from the command line:

vbc TextEncoder.vb /out:bin/ROT13Converter.dll /t:library

Alternatively, use VB.NET to compile the dll.

Imports System

Namespace BRETTB

   'Contains methods for encoding (but not encrypting!) text.  
   Public Class TextEncoder
    
      'Encodes text using the ROT13 algorithm  
      Public Function ROT13Encode(InputText As String) As String
         Dim i As Integer
         Dim CurrentCharacter As Char
         Dim CurrentCharacterCode As Integer
         Dim EncodedText As String = ""
          
         'Iterate through the length of the input parameter  
         For i = 0 To InputText.Length - 1
            'Convert the current character to a char  
            CurrentCharacter = System.Convert.ToChar(InputText.Substring(i, 1))
            
            'Get the character code of the current character  
            CurrentCharacterCode = Microsoft.VisualBasic.Asc(CurrentCharacter)
            
            'Modify the character code of the character, - this  
            'so that "a" becomes "n", "z" becomes "m", "N" becomes "Y" and so on  
            If CurrentCharacterCode >= 97 And CurrentCharacterCode <= 109 Then
               CurrentCharacterCode = CurrentCharacterCode + 13
            
            Else
               If CurrentCharacterCode >= 110 And CurrentCharacterCode <= 122 Then
                  CurrentCharacterCode = CurrentCharacterCode - 13
                
               Else
                  If CurrentCharacterCode >= 65 And CurrentCharacterCode <= 77 Then
                     CurrentCharacterCode = CurrentCharacterCode + 13
                  
                  Else
                     If CurrentCharacterCode >= 78 And CurrentCharacterCode <= 90 Then
                        CurrentCharacterCode = CurrentCharacterCode - 13
                     End If
                  End If  
               End If 'Add the current character to the string to be returned
            End If
            EncodedText = EncodedText + Microsoft.VisualBasic.ChrW(CurrentCharacterCode)
         Next i
          
         Return EncodedText
      End Function 'ROT13Encode  
   End Class 'TextEncoder
End Namespace 'BRETTB

Once the code has been compiled, the dll can be placed in the web application's /bin folder and used using a syntax like this:

Dim TextEncodingObject As New TextEncoder()
TextBox1.Text = TextEncodingObject.ROT13Encode(TextBox1.Text)

The code samples contain an example of how to encode and decode text through a VB.NET web form using ROT13.

ROT13 Encoding Using C#

In this example, a ROT13 encoding/decoding function is created as a function named ROT13Encode within a class called TextEncoder. The code for the TextEncoder class is shown below.

using System;

namespace BRETTB
{
    /// <summary>  
    /// Contains methods for encoding (but not encrypting!) text.  
    /// </summary>  
    public class TextEncoder
    {

        /// <summary>  
        /// Encodes text using the ROT13 algorithm  
        /// </summary>  
        /// <param name="InputText"></param>  
        /// <returns></returns>  
        public string ROT13Encode(string InputText)
        {
            int i;
            char CurrentCharacter;
            int CurrentCharacterCode;
            string EncodedText = "";
            
            //Iterate through the length of the input parameter  
            for (i = 0; i < InputText.Length; i++)  
            {
                //Convert the current character to a char  
                CurrentCharacter = System.Convert.ToChar(InputText.Substring(i, 1));
                
                //Get the character code of the current character  
                CurrentCharacterCode = (int) CurrentCharacter;

                //Modify the character code of the character, - this  
                //so that "a" becomes "n", "z" becomes "m", "N" becomes "Y" and so on  
                if (CurrentCharacterCode >= 97 && CurrentCharacterCode <= 109)  
                {
                    CurrentCharacterCode = CurrentCharacterCode + 13;
                }  
                else

                    if (CurrentCharacterCode >= 110 && CurrentCharacterCode <= 122)  
                {
                    CurrentCharacterCode = CurrentCharacterCode - 13;
                }  
                else

                    if (CurrentCharacterCode >= 65 && CurrentCharacterCode <= 77)  
                {
                    CurrentCharacterCode = CurrentCharacterCode + 13;
                }  
                else

                    if (CurrentCharacterCode >= 78 && CurrentCharacterCode <= 90)  
                {
                    CurrentCharacterCode = CurrentCharacterCode - 13;
                }

                //Add the current character to the string to be returned  
                EncodedText = EncodedText + (char) CurrentCharacterCode;
            }
            
        return EncodedText;

        }
    }
}

Once the code has been compiled, the dll can be placed in the web application's /bin folder and used using a syntax like this:

TextEncoder TextEncodingObject = new TextEncoder();
TextBox1.Text = TextEncodingObject.ROT13Encode(TextBox1.Text);

The code samples contain an example of how to encode and decode text through a C# web form using ROT13.

Code Samples

Further Reading

  • The .NET Framework contains an abundance of encryption classes - look for them in System.Security.Cryptography.
  Site Map | Privacy Policy

All content is 1995 - 2012