Vous êtes sur la page 1sur 5

/* * To change this template, choose Tools | Templates * and open the template in the editor.

*/ package cmlsoundsignature; /** * * @author project */

// CIPHER / GENERATORS import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.KeyGenerator; import java.awt.event.ActionListener; // KEY import import import import import SPECIFICATIONS java.security.spec.KeySpec; java.security.spec.AlgorithmParameterSpec; javax.crypto.spec.PBEKeySpec; javax.crypto.SecretKeyFactory; javax.crypto.spec.PBEParameterSpec;

// EXCEPTIONS import java.security.InvalidAlgorithmParameterException; import java.security.NoSuchAlgorithmException; import java.security.InvalidKeyException; import java.security.spec.InvalidKeySpecException; import javax.crypto.NoSuchPaddingException; import javax.crypto.BadPaddingException; import javax.crypto.IllegalBlockSizeException; import javax.swing.JFrame; import javax.swing.JLabel; import import import import import public java.awt.Button; java.awt.FlowLayout; java.awt.event.ActionEvent; java.io.UnsupportedEncodingException; java.io.IOException; class pg3 {

Cipher ecipher; Cipher dcipher;

pg3(SecretKey key, String algorithm) { try { ecipher = Cipher.getInstance(algorithm); dcipher = Cipher.getInstance(algorithm); ecipher.init(Cipher.ENCRYPT_MODE, key); dcipher.init(Cipher.DECRYPT_MODE, key); } catch (NoSuchPaddingException e) { System.out.println("EXCEPTION: NoSuchPaddingException");

} catch (NoSuchAlgorithmException e) { System.out.println("EXCEPTION: NoSuchAlgorithmException"); } catch (InvalidKeyException e) { System.out.println("EXCEPTION: InvalidKeyException"); } } pg3(String passPhrase) { // 8-bytes Salt byte[] salt = { (byte)0xA9, (byte)0x9B, (byte)0xC8, (byte)0x32, (byte)0x56, (byte)0x34, (byte)0xE3, (byte)0x03 }; // Iteration count int iterationCount = 19; try { KeySpec keySpec = new PBEKeySpec(passPhrase.toCharArray(), salt, ite rationCount); SecretKey key = SecretKeyFactory.getInstance("PBEWithMD5AndDES").gen erateSecret(keySpec); ecipher = Cipher.getInstance(key.getAlgorithm()); dcipher = Cipher.getInstance(key.getAlgorithm()); // Prepare the parameters to the cipthers AlgorithmParameterSpec paramSpec = new PBEParameterSpec(salt, iterat ionCount); ecipher.init(Cipher.ENCRYPT_MODE, key, paramSpec); dcipher.init(Cipher.DECRYPT_MODE, key, paramSpec); } catch (InvalidAlgorithmParameterException e) { System.out.println("EXCEPTION: InvalidAlgorithmParameterException"); } catch (InvalidKeySpecException e) { System.out.println("EXCEPTION: InvalidKeySpecException"); } catch (NoSuchPaddingException e) { System.out.println("EXCEPTION: NoSuchPaddingException"); } catch (NoSuchAlgorithmException e) { System.out.println("EXCEPTION: NoSuchAlgorithmException"); } catch (InvalidKeyException e) { System.out.println("EXCEPTION: InvalidKeyException"); } } public pg3() { // TODO Auto-generated constructor stub } public String encrypt(String str) { try { // Encode the string into bytes using utf-8 byte[] utf8 = str.getBytes("UTF8"); // Encrypt

byte[] enc = ecipher.doFinal(utf8); // Encode bytes to base64 to get a string return new sun.misc.BASE64Encoder().encode(enc); } catch (BadPaddingException e) { } catch (IllegalBlockSizeException e) { } catch (UnsupportedEncodingException e) { } catch (IOException e) { } return null; }

public String decrypt(String str) { // System.out.println(str); try { // Decode base64 to get bytes byte[] dec = new sun.misc.BASE64Decoder().decodeBuffer(str); // Decrypt byte[] utf8 = dcipher.doFinal(dec); // Decode using utf-8 return new String(utf8, "UTF8"); } catch (BadPaddingException e) { } catch (IllegalBlockSizeException e) { } catch (UnsupportedEncodingException e) { } catch (IOException e) { } return null; }

public static String testUsingSecretKeyen(String secretString) { try {

// String secretString = "secret msg"; SecretKey blowfishKey = KeyGenerator.getInstance("Blowfish").genera teKey(); // Create encrypter/decrypter class pg3 blowfishEncrypter = new pg3(blowfishKey, blowfishKey.getAlgorith m()); // Encrypt the string final String blowfishEncrypted = blowfishEncrypter.encrypt(secre tString); String decrypted=blowfishEncrypter.decrypt(blowfishEncrypted);

// Print out values // System.out.println(blowfishKey.getAlgorithm() + " Encryption algori thm"); // System.out.println(" Original String : " + secretString); // System.out.println(" Encrypted String : " + blowfishEncrypted); testUsingSecretKeyde(blowfishEncrypted); // System.out.println(" Decrypted String : " + decrypted); // System.out.println(); secretString=blowfishEncrypted; } catch (NoSuchAlgorithmException e) { } return secretString; } public static String testUsingSecretKeyde(String blowfishEncrypted) { try {

// String secretString = "secret msg"; SecretKey blowfishKey = KeyGenerator.getInstance("Blowfish").genera teKey(); // Create encrypter/decrypter class pg3 blowfishEncrypter = new pg3(blowfishKey, blowfishKey.getAlgorith m()); // Encrypt the string // final String blowfishEncrypted = blowfishEncrypter.encrypt(sec retString); String decrypted=blowfishEncrypter.decrypt(blowfishEncrypted); // Print out values //System.out.println(blowfishKey.getAlgorithm() + " Encryption algori thm"); // System.out.println(" Original String : " + secretString); // System.out.println(" Encrypted String : " + blowfishEncrypted); //System.out.println(" Decrypted String : " + decrypted); blowfishEncrypted=decrypted; // System.out.println(); } catch (NoSuchAlgorithmException e) { } return blowfishEncrypted; //return all; } public static void main(String[] args) { // testUsingSecretKey(); String g,t;

pg3 p=new pg3(); g=p.testUsingSecretKeyen("hai"); System.out.println("Encry "+g); t=p.testUsingSecretKeyde(g); System.out.println("Decry "+g); } }

Vous aimerez peut-être aussi