Simple Encrypter and Decrypter Class
I am posting a simple Enc and Dec class, which i was googling for a
long time but didnt find.
Hope this will help some one.
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class EncrypterDecrypter
{
private static final String UNICODE_FORMAT = "UTF8";
public String encrypt( String unencryptedString ) throws
EncryptionException
{
if ( unencryptedString == null || unencryptedString.trim().length()
== 0 )
throw new IllegalArgumentException(
"Unencrypted string cant be null or empty" );
try
{
byte[] keyAsBytes = unencryptedString.getBytes( UNICODE_FORMAT );
BASE64Encoder base64encoder = new BASE64Encoder();
return base64encoder.encode( keyAsBytes );
}
catch (Exception e)
{
throw new EncryptionException( e );
}
}
public String decrypt( String encryptedString ) throws
EncryptionException
{
if ( encryptedString == null || encryptedString.trim().length() <=
0 )
throw new IllegalArgumentException( "Encrypted string cant be null
or empty" );
try
{
BASE64Decoder base64decoder = new BASE64Decoder();
byte[] uncr = base64decoder.decodeBuffer( encryptedString );
return toStr( uncr );
}
catch (Exception e)
{
throw new EncryptionException( e );
}
}
private static String toStr( byte[] bytes )
{
StringBuffer stringBuffer = new StringBuffer();
for (int i = 0; i < bytes.length; i++)
{
stringBuffer.append( (char) bytes[i] );
}
return stringBuffer.toString();
}
public static class EncryptionException extends Exception
{
public EncryptionException( Throwable t )
{
super( t );
}
}
public static void main (String s[]) throws Exception
{
EncrypterDecrypter ed = new EncrypterDecrypter();
if (s.length != 2)
{
log(" Not enough parameters ");
log(" Usage : \n java EncrypterDecrypter 1 <string> \n \t or \n
java EncrypterDecrypter 2 <string> \n \t 1 -> Encryption 2->
Decryption");
System.exit(0);
}
int action = -1;
String str = null;
try
{
action = Integer.parseInt(s[0]);
}
catch(Exception e)
{
log (" Invalid input provided for first param");
System.exit(0);
}
log(" Action to be taken :"+ action);
switch(action)
{
case 1:
String encr = ed.encrypt(s[1]);
log(" Encrypted String "+ s[0]+" is : "+ encr);
break;
case 2:
String decr = ed.decrypt(s[1]);
log(" Decrypted String of "+ s[1]+" is : "+ decr);
break;
case 9:
String enc = ed.encrypt(s[1]);
log(" Encrypted String : "+ enc);
String dec = ed.decrypt(enc);
log(" Decrypted String : "+ dec);
break;
default:
log(" Wrong parameter value passed, please check ... ");
break;
}
}
public static void log(String s)
{
System.out.println(s);
}
}