Bosan dengan tampilan form login yang gitu-gitu aj?. Waktu mau login, user harus memasukkan data username dan passwordnya. aaahhh, basi banget yah. Kalau pun beda paling pake Captcha (user harus menginputkan kode tertentu yang ditampilkan).

Form Login Konvensional
Saatnya kita memikirkan cara baru untuk validasi user yang lebih revolusioner (halah, lebay
)… Salah satunya dengan metode yang saya beri nama “Mouse Motion Validator”
.
Sebagai perbandingan, perhatikan form login d bawah :

Mouse Motion Validator
Kalau si user (pembobol) dihadapkan pada sistem validasi menggunakan form seperti di atas, gimana ga bingung tuh. Si “pembobol” ga bakalan sempat memikirkan apa kata kuncinya, karena bahkan dia tidak tau bagaimana cara memasukkan kata kunci tersebut!!. Keren ga tuh!!.
Konsepnya sederhana aja, dimana sistem akan menerima user untuk masuk apabila user menempatkan cursor ke posisi yang tepat dalam jangka waktu tertentu. Bingung??… Perhatikan gambar dibawah :

1

2
Dengan kata lain, untuk mendapatkan akses ke program ini, user harus memposisikan teks berwarna biru ke teks berwarna hitam secara tepat. Kemudian menahan posisi itu selama 5 detik. Lalu….

3
Program ini tinggal di pasang aj di program-program java yang kamu anggap private. Coba deh bayangin ketika teman kamu yang buka, kemudian di hadapkan pada form seperti tadi. Di jamin tuh program di tutup lagi alias ga jd di buka.
Programnya ini awalnya hanya untuk mengisi waktu luang saya. Senang rasanya kalau bisa lebih populer dari sistem validasi menggunakan form secara konvensional dan pada akhirnya bisa menjadi standar keamanan yang baru. Atau setidaknya menjadi inspirasi untuk lahirnya metode-metode baru yang lebih unik dengan tetap memperhatikan kualitas security-nya. Jadi buat yang punya ide atau produk unik lain, jangan ragu buat share yah. Karena kita punya hobi yang sama di bidang ini.
Selamat mencoba…
Source Code :
1: import java.awt.*;
2: import java.io.*;
3: import javax.swing.*;
4: import java.awt.event.*;
5: import java.util.Timer;
6: import java.util.TimerTask;
7:
8: public class Login extends JFrame {
9: JLabel label = new JLabel("This Program is Protected");
10: Point p = new Point(265,165); //posisi key 'xn_mue'
11: Timer tmr = new Timer();
12: TimerTask task = new time();
13: text gambar = new text();
14:
15: public Login(){
16: initC();
17: setAlwaysOnTop(true);
18: setUndecorated(true);
19: setBounds(0, 0, 400, 200);
20: setLocationRelativeTo(null);
21: setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
22: setVisible(true);
23: }
24:
25: public void initC(){
26: JPanel pane = new JPanel();
27: pane.add(label);
28:
29: gambar.addMouseMotionListener(new MouseMotionListener(){
30: public void mouseDragged(MouseEvent e){
31: if (e.getPoint().equals(p)) {
32: start();
33: }
34: else {
35: stop();
36: }
37: gambar.setx(e.getX());
38: gambar.sety(e.getY());
39: gambar.repaint();
40: }
41: public void mouseMoved(MouseEvent e){
42: if (e.getPoint().equals(p)) {
43: start();
44: }
45: else {
46: stop();
47: }
48: gambar.setx(e.getX());
49: gambar.sety(e.getY());
50: gambar.repaint();
51: }
52: });
53: add(pane,"North");
54: add(gambar);
55: }
56:
57: public void start() {
58: tmr = new Timer();
59: task = new time();
60: tmr.scheduleAtFixedRate(task, 0, 600);
61: }
62:
63: public void stop() {
64: tmr.cancel();
65: label.setText("This Program is Protected");
66: }
67:
68: public void haltme() {
69: setVisible(false);
70: tmr.cancel();
71: new MDI(); //class yang akan dijalankan selanjutnya
72: }
73:
74: class time extends TimerTask{
75: int t = 0;
76: String l = new String();
77: public void run() {
78: if (t !=6){
79: t=t+1;
80: if (t==6){
81: label.setText("Unlocked");
82: }
83: }
84: else {
85: haltme();
86: }
87: }
88: }
89:
90: public class text extends JComponent {
91: private int x = -1;
92: private int y = -1;
93:
94: public void setx(int x){
95: this.x = x;
96: }
97: public void sety(int y){
98: this.y = y;
99: }
100: public void paintComponent(Graphics g){
101: g.drawString("contact :",p.x-50,p.y);
102: g.drawString("xn_mue@yahoo.co.id",p.x,p.y);
103: g.setColor(Color.BLUE);
104: if (x!=-1&&y!=-1)
105: g.drawString("xn_mue",x,y);
106: }
107: }
108:
109: public static void main (String args[]){
110: SwingUtilities.invokeLater(new Runnable(){
111: public void run(){
112: new Login();
113: }
114: });
115: }
116: }

Comments