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 dec;
import java.text.DateFormat;
public class DecryptOtp {
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?><resources>
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) { }}
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
Posting Komentar