pertama-tama ambil sebatang rokok dan nyalakan, kemudian jangan lupa bikin kopi berhubung saya bikinnya pada tengah malem, diruangan kantor yang hanya ditemani dengan salah satu temen sekantor saya yang juga sedang sibuk dengan coding .Net nya,hehe....
ok kitA mulai kembali ke LAPTOP (by mas TUKUL) dan mulai membikin class class nya, ini contohnya
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package encryption.model;
import java.io.*;
import java.security.*;
import javax.crypto.*;
import javax.swing.JPasswordField;
import sun.misc.*;
/**
*
* @author yoga
*/
public class Encryption {
public Key key;
private String text;
private String generate;
Cipher cipher;
private JPasswordField jPasswordField1;
public Encryption() throws Exception{
text="";
generate="";
cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");
try {
// File kunci ada, baca dan load kunci
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("SecretKey.ser"));
key = (Key) ois.readObject();
} catch (FileNotFoundException e) {
/**
* File kunci tidak ada
* Buat kunci baru, Tentukan algoritma enkripsi yang ingin digunakan
* Algoritma enkripsi yang digunakan adalah DES
*/
KeyGenerator generator = KeyGenerator.getInstance("DES");
// Untuk menghasilkan kunci acak, generator membutuhkan angka acak
generator.init(new SecureRandom());
// generate kunci
key = generator.generateKey();
// simpan kunci keadalam file
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("SecretKey.ser"));
oos.writeObject((Key) key);
oos.close();
}
}
public void doEncryption() {
try{
cipher.init(Cipher.ENCRYPT_MODE, key);
String plaintext = getText();
byte[] stringBytes = plaintext.getBytes("UTF8");
// lakukan enkripsi
byte[] raw = cipher.doFinal(stringBytes);
BASE64Encoder encoder = new BASE64Encoder();
String cipherText = encoder.encode(raw);
//System.out.println(cipherText);
this.setGenerate(cipherText);
}catch(Exception e)
{
System.out.println(e.getMessage());
}
}
public String getText()
{
return text;
}
public void setGenerate(String generate)
{
this.generate=generate;
}
public String getGenerate()
{
return generate;
}
public void setText(JPasswordField jPasswordField1) {
JPasswordField jPasswoedField = null;
this.jPasswordField1=jPasswoedField;
}
}
setelah itu langkah kedua kita bikin class seperti dibawah ini, tarik nafas dalam2 dulu biar rilexs
package encryption.viewcontrol;
import encryption.model.Encryption;
public class EncryptionGUI extends javax.swing.JFrame {
Encryption e;
public EncryptionGUI() {
try{
e = new Encryption();
}catch(Exception e) {
}
initComponents();
}
// //GEN-BEGIN:initComponents
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jTextField2 = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
jButton1 = new javax.swing.JButton();
jPasswordField1 = new javax.swing.JPasswordField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jLabel1.setText("password");
jLabel2.setText("result");
jButton1.setText("generate");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
tombolGenerate(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jButton1))
.addGroup(layout.createSequentialGroup()
.addGap(17, 17, 17)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(jLabel2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 29, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jPasswordField1)
.addComponent(jTextField2, javax.swing.GroupLayout.DEFAULT_SIZE, 174, Short.MAX_VALUE))))
.addGap(154, 154, 154))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(23, 23, 23)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(jPasswordField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButton1)
.addContainerGap(23, Short.MAX_VALUE))
);
pack();
}// //GEN-END:initComponents
private void tombolGenerate(java.awt.event.ActionEvent evt) {//GEN FIRST:event_tombolGenerate
e.setText(jPasswordField1);
doEncryptionGUI();
}//GEN-LAST:event_tombolGenerate
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new EncryptionGUI().setVisible(true);
}
});
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JPasswordField jPasswordField1;
private javax.swing.JTextField jTextField2;
// End of variables declaration//GEN-END:variables
public void doEncryptionGUI() {
e.doEncryption();
jTextField2.setText(e.getGenerate());
}
public void setEncryption(Encryption e) {
this.e=e;
}
}
oh ya class diatas ini merupakan class yang dibuat dengan menggunakan model java form dengan netbean 6.5 jadi saya coba masukan source nya aja,,
setelah itu kita buat class main nya utk memanggil form yang telah kita buat
package encryption;
import encryption.model.Encryption;
import encryption.viewcontrol.EncryptionGUI;
/**
*
* @author yoga
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args)throws Exception {
// TODO code application logic here
EncryptionGUI eg =new EncryptionGUI();
Encryption e = new Encryption();
eg.setEncryption(e);
eg.setVisible(true);
}
}
sebelum di run jangan lupa kopinya diminum dulu keburu dingin, dan baca BISMILLAH..
nah kira2 seperti itulah coding sederhana untuk mengenkripsi sebuah character dan numeric yang ingin dienkripsi..
SELAMAT MENCOBA....!!!
