// project created on 30.01.2006 at 15:04
using System;

class MainClass
{
const string strKlartext = "Dies ist ein sehr blöder Klartext mit dümmlichen Inhalt: Mein PIN wäre 1234!";

    public static void Main(string[] args)
    {
        string strCrypt, strClear;
         
        Console.WriteLine("Mein Klartext: {0}", strKlartext);
        
        strCrypt = Encrypt(strKlartext, 12345);

        Console.WriteLine("heisst verschlisselt: {0}", strCrypt);


        for (int i = 1; i < 20000; i++)
            { 
            strClear = Decrypt(strCrypt, i);
            
            if ((strClear.IndexOf("ein") >= 0) && (strClear.IndexOf("mit") >= 0) ) 
                {
                Console.WriteLine("und entschlisselt mit {1}: {0}", strClear, i);
                }
            }
    }
    
    public static string Encrypt( string strText, int nKey )
    {
    Random rndGen = new Random(nKey);
    string strResult = "";
    
    
    foreach (char c in strText)
        {
        if ((c >= ' ') && (c <= '~'))
            {
            int nZahl = c + rndGen.Next(26);
            if (nZahl > '~')
                {
                nZahl -= ('~' - ' ' + 1);
                }
                
            strResult += Convert.ToChar(nZahl);
            }
        else
            {
            strResult += c;
            }
        }
    
    return strResult;
    }
    


    public static string Decrypt( string strText, int nKey )
    {
    Random rndGen = new Random(nKey);
    string strResult = "";
    
    foreach (char c in strText)
        {
        if ((c >= ' ') && (c <= '~'))
            {
            int nZahl = c - rndGen.Next(26);
            if (nZahl < ' ')
                {
                nZahl += ('~' - ' ' + 1);
                }
                
            strResult += Convert.ToChar(nZahl);
            }
        else
            {
            strResult += c;
            }
        }
    
    return strResult;
    }
    
    
} //class

syntax highlighted by Code2HTML, v. 0.9.1