Welcome to HBH! If you have tried to register and didn't get a verification email, please using the following link to resend the verification email.
Caesar Cipher - Java Code Bank
Caesar Cipher
My first program on my own, feedback wanted. The program asks the user for a string, then asks for a number by which to shift the characters. It encodes/decodes the string and prints both forms.
/**
* @author Greg_G
*
*/
import javax.swing.*;
public class Ceasar1 {
private String plaintext;
private static int keyOffset;
public Ceasar1()
{
plaintext = null;
keyOffset = 0;
}
public static void main(String [] args)
{
Ceasar1 cipherArray = new Ceasar1();
String tmp = cipherArray.encrypt();
System.out.println("This is after encryption:" + tmp );
System.out.println(decrypt("This is decrypted back to its original form" + tmp ) );
System.exit(0);
}
public String encrypt()
{
plaintext = ((String)JOptionPane.showInputDialog("enter string to encrypt:") ).toLowerCase().trim();
keyOffset = Integer.parseInt(JOptionPane.showInputDialog("enter offset to shift the letters by:") );
String alphabet = "abcdefghijklmnopqrstuvwxyz";
StringBuffer sbuff = new StringBuffer();
int holder = plaintext.length();
for(int i = 0; i < holder; i++)
{
String tmp = ""+plaintext.charAt(i);
int offset = alphabet.indexOf(tmp);
offset += keyOffset;
if( offset > 25 )
{
int newOffset = 0;
newOffset = offset % 25;
sbuff.append(alphabet.charAt(newOffset) );
}
else
{
sbuff.append(alphabet.charAt(offset));
}
}
return sbuff.toString();
}
public static String decrypt(String tmp) {
String alphabetdec = "abcdefghijklmnopqrstuvwxyz";
StringBuffer sbuff = new StringBuffer();
int holder = tmp.length();
for(int i = 0; i < holder; i++)
{
String tmp1 = ""+tmp.charAt(i);
int offset = alphabetdec.indexOf(tmp1);
offset -= keyOffset;
if( offset < 0 )
{
int newOffset = 0;
newOffset = offset + 25;
sbuff.append( alphabetdec.charAt(newOffset) );
}
else
{
sbuff.append( alphabetdec.charAt(offset) );
}
}
return sbuff.toString();
}
}
Comments
Sorry but there are no comments to display