From Null-pointer
Encrytion Example
/*
* Created on 05-Apr-2006
*
* $Id: $
* @author pkane
*/
package edu.london.ad;
import java.math.BigInteger;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
public class PasswordMaker
{
private static byte[] desKeyData = "95179873".getBytes();
private static byte[] encrypt(byte[] inpBytes, SecretKey key, String xform)
throws Exception
{
Cipher cipher = Cipher.getInstance( xform );
cipher.init( Cipher.ENCRYPT_MODE, key );
return cipher.doFinal( inpBytes );
}
private static byte[] decrypt(byte[] inpBytes, SecretKey key, String xform)
throws Exception
{
Cipher cipher = Cipher.getInstance( xform );
cipher.init( Cipher.DECRYPT_MODE, key );
return cipher.doFinal( inpBytes );
}
public static void main(String[] unused)
throws Exception
{
String xform = "DES/ECB/PKCS5Padding";
// Generate a secret key
DESKeySpec desKeySpec = new DESKeySpec( desKeyData );
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance( "DES" );
SecretKey secretKey = keyFactory.generateSecret( desKeySpec );
String passwordToEncrypt = "myPassword";
byte[] dataBytes = passwordToEncrypt.getBytes();
byte[] encBytes = encrypt( dataBytes, secretKey, xform );
BigInteger bi = new BigInteger( encBytes );
byte[] decBytes = decrypt( encBytes, secretKey, xform );
boolean expected = java.util.Arrays.equals( dataBytes, decBytes );
System.out.println( "Password encrypted is [" + bi.toString( 36 ) + "]" );
System.out.println( "Encryption check " + (expected ? "SUCCEEDED!" : "FAILED!") );
String confirmEncryptionWord = "5kb1n582fpp9hple6nvn51jzg";
BigInteger bigInteger = new BigInteger( confirmEncryptionWord, 36 );
byte[] word = bigInteger.toByteArray();
byte[] decrypt = decrypt( word, secretKey, xform );
System.out.println( "decrypted [" + new String( decrypt ) + "]" );
}
}
Hashing Example
private static String makePassword(String password)
throws ControllerException
{
try
{
MessageDigest sha = MessageDigest.getInstance("SHA1");
byte[] digest = sha.digest(password.getBytes());
BigInteger testDigest = new BigInteger(1,digest);
return testDigest.toString(36);
}
catch(Exception x)
{
throw new ControllerException( x );
}
}