Cézarova šifra pre n = 3:
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 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C |
Nasledujúcim kódom si ukážeme ako naprogramovať Cezarovú šifru v C#.
Kód v C#
/* * Created by www.projectik.eu. * User: * Date: 3. 12. 2011 * Time: 11:20 */ using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Forms; namespace Cezar { /// <summary> /// Description of MainForm. /// </summary> public partial class MainForm : Form { private int posun = 3; public MainForm() { InitializeComponent(); } void RichTextBox1TextChanged(object sender, EventArgs e) { this.CeasarHash(this.richTextBox1.Text); } void CeasarHash(string vstup) { char[] znaky = vstup.ToCharArray(); string newString = ""; foreach(char znak in znaky) { if(znak >= 'A' && znak <='Z' ) { if((znak + 3) > 'Z') { newString += Convert.ToChar(((int)znak+posun)-(26)).ToString(); } else { newString += Convert.ToChar((int)znak+posun).ToString(); } } if(znak >= 'a' && (int)znak <= 'z') { if((znak + 3) > 'z') { newString += Convert.ToChar(((int)znak+posun)-(26)).ToString(); } else { newString += Convert.ToChar((int)znak+posun).ToString(); } } } this.richTextBox2.Text = newString; } } }
Dešifrovanie funguje presne opačným zpôsobom (odpočítame posun od šifrovaného textu):