MEMBUAT ONE TIME PASSWORD

TUGAS KULIAH

NAMA       : DIDIK MAULANA
NIM           : 5150311006

Kita akan membuat aplikasi otp di java neatbeans sebagai server dan nanti di android sebagai client

pertama kita buat java nya dulu


ini adalah syntak yang encrypt

package enc;import random.Random;public class Encrypt {    private String palsu;    private String asli="TEST";    public Encrypt() {        Random rd = new Random();        this.asli = rd.getStr();    }    public String getPalsu() {        String WordKey = "LOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHA";        String NumKey = "012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789";        String CodeKey = "~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.";        //String toEncrypt = "Aku kirim sejumlah Rp.17.800.100,00 \"(tujuh belas juta)\" syaratnya harus lengkap";        String toEncrypt = this.asli;        WordKey = WordKey.toLowerCase();        toEncrypt = toEncrypt.toLowerCase();        char wordArray[] = WordKey.toCharArray();        char numArray[] = NumKey.toCharArray();        char charArray[] = toEncrypt.toCharArray();        char codeArray[] = CodeKey.toCharArray();        for (int i = 0; i < toEncrypt.length(); i++) {            if (Character.isLetter(charArray[i])) {                if (Character.isUpperCase(charArray[i])) {                    charArray[i] = (char) (((int) charArray[i] - 65 + ((int) wordArray[i] - 97)) % 26 + 65);                } else {                    charArray[i] = (char) (((int) charArray[i] - 97 + ((int) wordArray[i] - 97)) % 26 + 97);                }            } else if ((int) charArray[i] >= 48 && (int) charArray[i] < 58) {                charArray[i] = (char) (((int) charArray[i] - 48 + ((int) numArray[i])) % 10 + 48);            } else if ((int) charArray[i] >= 30 && (int) charArray[i] < 48) {                charArray[i] = (char) (((int) charArray[i] - 30 + ((int) codeArray[i])) % 18 + 30);            }        }        toEncrypt = new String(charArray);        return toEncrypt;    }    public void setPalsu(String palsu) {        this.palsu = palsu;    }    public String getAsli() {                return asli;    }    public void setAsli(String asli) {        this.asli = asli;    }

}

selanjutnya syntax deckript

package dec;
public class Decrypt {
    private String alsi;
    public Decrypt() {    }
    public String getAlsi() {        String WordKey = "LOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHA";        String NumKey = "012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789";        String CodeKey = "~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.";
        String toDecrypt = this.alsi;
        WordKey = WordKey.toLowerCase();        toDecrypt = toDecrypt.toUpperCase();
        char wordArray[] = WordKey.toCharArray();        char numArray[] = NumKey.toCharArray();        char charArray[] = toDecrypt.toCharArray();        char codeArray[] = CodeKey.toCharArray();
        for (int i = 0; i < toDecrypt.length(); i++) {            if (Character.isLetter(charArray[i])) {                if (Character.isUpperCase(charArray[i])) {                    charArray[i] = (char) (((int) charArray[i] - 65 - ((int) wordArray[i % WordKey.length()] - 97) + 104) % 26 + 65);                } else {                    charArray[i] = (char) (((int) charArray[i] - 97 - ((int) wordArray[i % WordKey.length()] - 97) + 104) % 26 + 97);                }            } else if ((int) charArray[i] >= 48 && (int) charArray[i] < 58) {                charArray[i] = (char) (((int) charArray[i] - 48 - ((int) numArray[i]) + 80) % 10 + 48);            } else if ((int) charArray[i] >= 30 && (int) charArray[i] < 48) {                charArray[i] = (char) (((int) charArray[i] - 30 - ((int) codeArray[i])) % 18 + 48);            }        }
        toDecrypt = new String(charArray);        return toDecrypt;    }
    public void setAlsi(String alsi) {        this.alsi = alsi;    }}
 

setelah itu masukkan syntak random

package random;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Random {
    private String str;
    public String getStr() {
DateFormat df = new SimpleDateFormat("ssmm");     
        Calendar cl = Calendar.getInstance();
        str = ""+df.format(cl.getTime());
        str = "9"+str+"4";
 return str;
    }
    public void setStr(String str) {
    }

}


masukkan syntak yang ada di jframe, itu sudah runningannya, sebelum nya buat jframe terlebih dahulu

masukkan import di package gui

      package gui;import dec.Decrypt;import enc.Encrypt;import gui.JFrameMenu;import javax.swing.JOptionPane;-tambahkan initComponents:             jLblPalsu.setText(getPwdPalsu());-tambahkan private string getPwdAsli dan getPwdPalsu dibawah fungsi components          private String getPwdAsli(){        Encrypt enc = new Encrypt();        return enc.getAsli();    }    private String getPwdPalsu(){        Encrypt enc = new Encrypt();        return enc.getPalsu();    }  -masukan syntax di button Decrypt  private void jBtnToDecryptActionPerformed(java.awt.event.ActionEvent evt) {                                              String jtxttodec = jTxtToDecrypt.getText();        Decrypt dec = new Decrypt();        dec.setAlsi(jtxttodec);        jLblAsli.setText(dec.getAlsi());  -masukkan syntax di button Loginprivate void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                               if (jTextField1.getText().equals("admin")) {if (jPasswordField1.getText().equals(jLblAsli.getText())) {// Bila Login Sukses Maka Masuk Menu Utamanew JFrameMenu().show();this.dispose(); }else {// Bila Login Gagal Maka Ulangi LoginJOptionPane.showMessageDialog(rootPane, "<error> Password Salah, Silahkan Coba Lagi");jTextField1.setText("");jPasswordField1.requestFocus(); }}else {JOptionPane.showMessageDialog(rootPane, "<error> Username, Silahkan Coba Lagi");jTextField1.setText("");jPasswordField1.setText("");jTextField1.requestFocus();}    }                                       -Pilih  random dan masukkan syntax di Java Class Random.java//masukkan import dibawah ini : import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Calendar;public class Random {    private String str;    public String getStr() {        //============== JANGKRIK ============================        //int randomPin = (int) (Math.random() * 9000) + 1000;        //str = String.valueOf(randomPin);        //========== END OF JANGKRIK =========================        //DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        DateFormat df = new SimpleDateFormat("ssmm");              Calendar cl = Calendar.getInstance();        str = ""+df.format(cl.getTime());        str = "9"+str+"4";        /*        String cr = "";        String hs = "";        for (int i = 0; i < str.length(); i++) {            cr = str.substring(i, i + 1);            int ii = Integer.parseInt(cr);            if (ii == 0) {                cr = "A";            } else if (ii == 1) {                cr = "B";            } else if (ii == 2) {                cr = "C";            } else if (ii == 3) {                cr = "D";            } else if (ii == 4) {                cr = "E";            } else if (ii == 5) {                cr = "F";            } else if (ii == 6) {                cr = "G";            } else if (ii == 7) {                cr = "H";            } else if (ii == 8) {                cr = "I";            } else if (ii == 9) {                cr = "J";            } else {                cr = "";            }            hs = hs + cr;        }*/        return str;    }    public void setStr(String str) {    }}

buat jframe menu buat tampilanya

dan kita akan membuat yang ada di client dengan android

kita buka android studio dan kita buat

empety activity

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;



public class MainActivity extends AppCompatActivity {

    TextView tvpwdasli;
    EditText edttxtpalsu;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void btnOkClick(View view){
        tvpwdasli =(TextView)findViewById(R.id.tvPwdAsli);
        edttxtpalsu = (EditText)findViewById(R.id.edttxtpalsu);
        String palsu= edttxtpalsu.getText().toString();
        DecryptOtp obj = new DecryptOtp(palsu);
        tvpwdasli.setText(obj.getPwdasli());
    }

DecryptOtp

public class DecryptOtp {
    private String pwdasli;
    public DecryptOtp () {    }
    public DecryptOtp(String pwdasli) {        this.pwdasli = pwdasli;    }
    public String getPwdasli() {        String WordKey = "LOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHALOHA";        String NumKey = "012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789";        String CodeKey = "~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.~!@#$%^&*()-_+={}?<>/,.";
        String toDecrypt = this.pwdasli;
        WordKey = WordKey.toLowerCase();        toDecrypt = toDecrypt.toUpperCase();
        char wordArray[] = WordKey.toCharArray();        char numArray[] = NumKey.toCharArray();        char charArray[] = toDecrypt.toCharArray();        char codeArray[] = CodeKey.toCharArray();
        for (int i = 0; i < toDecrypt.length(); i++) {            if (Character.isLetter(charArray[i])) {                if (Character.isUpperCase(charArray[i])) {                    charArray[i] = (char) (((int) charArray[i] - 65 - ((int) wordArray[i % WordKey.length()] - 97) + 104) % 26 + 65);                } else {                    charArray[i] = (char) (((int) charArray[i] - 97 - ((int) wordArray[i % WordKey.length()] - 97) + 104) % 26 + 97);                }            } else if ((int) charArray[i] >= 48 && (int) charArray[i] < 58) {                charArray[i] = (char) (((int) charArray[i] - 48 - ((int) numArray[i]) + 80) % 10 + 48);            } else if ((int) charArray[i] >= 30 && (int) charArray[i] < 48) {                charArray[i] = (char) (((int) charArray[i] - 30 - ((int) codeArray[i])) % 18 + 48);            }        }
        toDecrypt = new String(charArray);        return toDecrypt;
    }
    public void setPwdasli(String pwdasli) {        this.pwdasli = pwdasli;    }}

dan di  xml nya

activity

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
    <EditText
        android:id="@+id/edttxtpalsu"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:hint="PASSWORD PALSU ANDA"
        android:textSize="20dp"
        android:layout_marginTop="50dp"
        android:textColorHint="#000"
        android:textColor="#000"
        android:inputType="text"/>
    <Button
        android:id="@+id/btnOkId"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="btnOkClick"
        android:layout_marginTop="120dp"
        android:layout_marginLeft="20dp"
        android:background="#808080"
        android:textSize="30dp"
        android:layout_centerHorizontal="true"
        android:textColor="#000"
        android:text="PRESS" />
    <TextView
        android:id="@+id/tvPwdAsli"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="#000"
        android:textSize="36sp"
        android:textStyle="bold"
        android:layout_below="@+id/edttxtpalsu"
        android:layout_marginTop="100dp"
        android:layout_centerHorizontal="true"
        />
</RelativeLayout>

color

<?xml version="1.0" encoding="utf-8"?><resources>
    <color name="colorPrimary">#262756</color>
    <color name="colorPrimaryDark">#f11a1a68</color>
    <color name="colorAccent">#FF4081</color>
</resources>

tampilan di androidnya


Komentar