LISTING PROGRAM
MainActivity.java
package com.example.jessicatamara.myapplication4;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
TextView txt_home;
Button btn_enkripsi, btn_dekripsi, btn_tentang, btn_bantuan, btn_keluar;
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txt_home = (TextView) findViewById(R.id.textViewHome);
btn_enkripsi = (Button) findViewById(R.id.buttonEnkripsi); btn_enkripsi.setOnClickListener(this);
btn_dekripsi = (Button) findViewById(R.id.buttonDekripsi); btn_dekripsi.setOnClickListener(this);
btn_tentang = (Button) findViewById(R.id.buttonTentang); btn_tentang.setOnClickListener(this);
btn_bantuan = (Button) findViewById(R.id.buttonBantuan); btn_bantuan.setOnClickListener(this);
}
@Override
public void onClick(View v) {
int klik = v.getId();
if (klik == R.id.buttonEnkripsi) {
Intent i = new Intent (MainActivity.this, Enkripsi_File.class);
startActivity(i); }
else if (klik==R.id.buttonDekripsi) {
Intent i = new Intent (MainActivity.this, dekripsi_file.class);
startActivity(i); }
Intent i = new Intent (MainActivity.this, tentang.class); startActivity(i);
}
else if (klik==R.id.buttonBantuan) {
Intent i = new Intent (MainActivity.this, bantuan.class); startActivity(i);
} } }
Enkripsi_File.java
package com.example.jessicatamara.myapplication4;
/**
* Created by JessicaTamara on 19/04/2017. */
import android.app.Activity;
import android.content.DialogInterface; import android.content.Intent;
import android.net.Uri; import android.os.Bundle;
import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.util.Log;
import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException; import com.itextpdf.text.Font;
import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfReader; import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.pdf.parser.PdfTextExtractor;
import java.io.File;
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException;
import java.io.OutputStreamWriter;
public class Enkripsi_File extends AppCompatActivity implements View.OnClickListener {
Button choose, proses_double, proses_ttm, simpan; TextView lokasi_file;
EditText kunci1, kunci2, kuncittm;
String awal, hsl_ttm, hsl_double, namafile;
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.enkripsi_file);
kuncittm = (EditText) findViewById(R.id.editTextInputKunci); kunci1 = (EditText) findViewById(R.id.editTextKunci1DTC); kunci2 = (EditText) findViewById(R.id.editTextKunci2DTC);
choose = (Button) findViewById(R.id.buttonBrowseEnk); choose.setOnClickListener(this);
proses_double = (Button) findViewById(R.id.buttonEnkDTC); proses_double.setOnClickListener(this);
proses_ttm = (Button) findViewById(R.id.buttonEnkTtm); proses_ttm.setOnClickListener(this);
simpan = (Button) findViewById(R.id.buttonSimpan); simpan.setOnClickListener(this);
}
@Override
public void onClick(View v) { switch (v.getId()) {
case R.id.buttonBrowseEnk:
Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("*/*"); //all files
intent.addCategory(Intent.CATEGORY_OPENABLE); try {
startActivityForResult(Intent.createChooser(intent, "Select a File to Upload"), 0);
} catch (android.content.ActivityNotFoundException ex) { Toast.makeText(Enkripsi_File.this, "Please install a File Manager.", Toast.LENGTH_SHORT).show();
} break;
case R.id.buttonEnkTtm:
Long startTime = System.currentTimeMillis(); trithemius ttm = new trithemius();
hsl_ttm = ttm.enkripsi_ttm(awal, kuncittm.getText().toString());
Long endTime = System.currentTimeMillis(); Long totalTime = endTime - startTime; Toast.makeText(Enkripsi_File.this, hsl_ttm, Toast.LENGTH_LONG).show();
Toast.makeText(Enkripsi_File.this, "Enkripsi dengan Algoritma Trithemius Berhasil \nRunning Time:" + totalTime.toString() + "ms", Toast.LENGTH_LONG).show();
break;
case R.id.buttonEnkDTC:
startTime = System.currentTimeMillis(); doublet db = new doublet();
hsl_double = db.enkripsi_double(hsl_ttm, kunci1.getText().toString(), kunci2.getText().toString()); endTime = System.currentTimeMillis(); totalTime = endTime - startTime;
Toast.makeText(Enkripsi_File.this, hsl_double, Toast.LENGTH_LONG).show();
Toast.makeText(Enkripsi_File.this, "Enkripsi dengan Double Transposition Cipher Berhasil \nRunning Time:" + totalTime.toString() + "ms", Toast.LENGTH_LONG).show();
case R.id.buttonSimpan:
AlertDialog.Builder builder = new AlertDialog.Builder(Enkripsi_File.this);
builder.setTitle("SAVE");
builder.setMessage("Masukkan Nama File");
// Use an EditText view to get user input.
final EditText input = new EditText(Enkripsi_File.this); input.setId(0);
builder.setView(input);
builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int whichButton) {
namafile = input.getText().toString(); //Document doc = new Document(); try {
namafile = "/mnt/sdcard/" + namafile+".pdf";
/*
File myFile = new File(namafile); myFile.createNewFile();
FileOutputStream fOut = new FileOutputStream(myFile);
OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
myOutWriter.append(hsl_double); myOutWriter.close();
fOut.close(); */
String print="";
Document document = new Document(); PdfWriter.getInstance(document, new FileOutputStream(namafile));
document.open();
for(int i=0; i<hsl_double.length()-1; i++) print += (int)hsl_double.charAt(i) + " "; print +=
(int)hsl_double.charAt(hsl_double.length()-1);
document.add(new Paragraph(print)); document.close();
Toast.makeText(Enkripsi_File.this, "File Berhasil Disimpan", Toast.LENGTH_LONG).show();
/*
File file = new File(namafile); FileOutputStream fOut = new FileOutputStream(file);
//open the document doc.open();
Paragraph p1 = new Paragraph(hsl_double); Font paraFont= new
Font(Font.FontFamily.COURIER);
p1.setAlignment(Paragraph.ALIGN_CENTER); p1.setFont(paraFont);
//add paragraph to document doc.add(p1);
} catch (DocumentException de) {
Log.e("PDFCreator", "DocumentException:" + de); */
} catch (FileNotFoundException e) { Log.d("ooo", "File not found: " + e.getMessage());
} catch (IOException e) {
Log.d("ooo", "Error accessing file: " + e.getMessage());
} catch (DocumentException e) { e.printStackTrace();
} return; }
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
return; }
});
builder.show();
break; }
}
String fileuri;
@Override
public void onActivityResult(int requestCode, int resultCode, Intent resultData) {
if (requestCode == 0 && resultCode == Activity.RESULT_OK) { Uri uri = null;
uri = resultData.getData(); fileuri = uri.getPath(); String parsedText = ""; try {
File ukuranfile = new File(fileuri);
parsedText = "";
PdfReader reader = new PdfReader(fileuri); Integer n = reader.getNumberOfPages(); for (int i = 0; i < n; i++) {
parsedText = parsedText +
PdfTextExtractor.getTextFromPage(reader, i + 1).trim() + "\n"; }
reader.close(); awal = parsedText;
lokasi_file.setText(fileuri); } catch (Exception e) {
Toast.makeText(getBaseContext(), "Harap Input file PDF", Toast.LENGTH_LONG).show();
lokasi_file.setText(""); }
} else {
Toast.makeText(getBaseContext(), "Ukuran Maksimal File 1MB", Toast.LENGTH_LONG).show();
lokasi_file.setText(""); }
} catch (Exception e) {
Toast.makeText(getBaseContext(), "Keterangan Error:" + e.getMessage(), Toast.LENGTH_LONG).show();
} } else {
Toast.makeText(this, "Tidak ada file yang dipilih", Toast.LENGTH_LONG).show();
} } }
dekripsi_file.java
package com.example.jessicatamara.myapplication4;
/**
* Created by JessicaTamara on 18/04/2017. */
import android.app.Activity;
import android.content.DialogInterface; import android.content.Intent;
import android.net.Uri; import android.os.Bundle; import android.os.Environment;
import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.util.Log;
import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException; import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.parser.PdfTextExtractor;
import java.io.BufferedReader; import java.io.File;
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException;
import java.io.OutputStreamWriter; import java.io.PrintWriter;
public class dekripsi_file extends AppCompatActivity implements View.OnClickListener {
Button choose, proses_double, proses_ttm, simpan; TextView lokasi_file;
EditText kunci1, kunci2, kuncittm;
String awal = "", hsl_dt, hsl_ttm, namafile;
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.dekripsi_file);
lokasi_file = (TextView) findViewById(R.id.textViewIsiFileDek); kuncittm = (EditText) findViewById(R.id.editTextInputKunciDek); kunci1 = (EditText) findViewById(R.id.editTextKunci1DTCDek); kunci2 = (EditText) findViewById(R.id.editTextKunci2DTCDek);
choose = (Button) findViewById(R.id.buttonBrowseDek); choose.setOnClickListener(this);
proses_double = (Button) findViewById(R.id.buttonDekDTC); proses_double.setOnClickListener(this);
proses_ttm = (Button) findViewById(R.id.buttonDekTtm); proses_ttm.setOnClickListener(this);
simpan = (Button) findViewById(R.id.buttonSimpanFile); simpan.setOnClickListener(this);
}
@Override
public void onClick(View v) { switch (v.getId()) {
case R.id.buttonBrowseDek:
Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("*/*"); //all files
intent.addCategory(Intent.CATEGORY_OPENABLE); try {
startActivityForResult(Intent.createChooser(intent, "Select a File to Upload"), 0);
} catch (android.content.ActivityNotFoundException ex) { Toast.makeText(dekripsi_file.this, "Please install a File Manager.", Toast.LENGTH_SHORT).show();
} break;
case R.id.buttonDekDTC:
hsl_dt = db.dekripsi_double(awal,
kunci1.getText().toString(), kunci2.getText().toString()); Long endTime = System.currentTimeMillis(); Long totalTime = endTime - startTime;
Toast.makeText(dekripsi_file.this, hsl_dt, Toast.LENGTH_LONG).show();
Toast.makeText(dekripsi_file.this, "Dekripsi dengan Double TRansposition Cipher Berhasil \nRunning Time:" + totalTime.toString() + "ms", Toast.LENGTH_LONG).show();
break;
case R.id.buttonDekTtm:
startTime = System.currentTimeMillis(); trithemius ttm = new trithemius(); hsl_ttm = ttm.dekripsi_ttm(hsl_dt, kuncittm.getText().toString());
endTime = System.currentTimeMillis(); totalTime = endTime - startTime;
Toast.makeText(dekripsi_file.this, hsl_ttm, Toast.LENGTH_LONG).show();
Toast.makeText(dekripsi_file.this, "Dekripsi dengan Algoritma Trithemius Berhasil \nRunning Time:" + totalTime.toString() + "ms", Toast.LENGTH_LONG).show();
break;
case R.id.buttonSimpanFile:
AlertDialog.Builder builder = new AlertDialog.Builder(dekripsi_file.this);
builder.setTitle("SAVE");
builder.setMessage("Masukkan Nama File");
// Use an EditText view to get user input.
final EditText input = new EditText(dekripsi_file.this); input.setId(0);
builder.setView(input);
builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int whichButton) {
namafile = input.getText().toString(); //Document doc = new Document(); try {
namafile = "/mnt/sdcard/"+namafile+".pdf";
/*
File myFile = new File(namafile); myFile.createNewFile();
FileOutputStream fOut = new FileOutputStream(myFile);
OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
myOutWriter.append(hsl_ttm); myOutWriter.close();
fOut.close(); */
FileOutputStream(namafile));
document.open();
document.add(new Paragraph(hsl_ttm)); document.close();
Toast.makeText(dekripsi_file.this, "File Berhasil Disimpan", Toast.LENGTH_LONG).show();
/*
File file = new File(namafile); FileOutputStream fOut = new FileOutputStream(file);
PdfWriter.getInstance(doc, fOut);
//open the document doc.open();
Paragraph p1 = new Paragraph(hsl_double); Font paraFont= new
Font(Font.FontFamily.COURIER);
p1.setAlignment(Paragraph.ALIGN_CENTER); p1.setFont(paraFont);
//add paragraph to document doc.add(p1);
} catch (DocumentException de) {
Log.e("PDFCreator", "DocumentException:" + de); */
Toast.makeText(dekripsi_file.this, "File Berhasil Disimpan", Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) { Log.d("ooo", "File not found: " + e.getMessage());
} catch (IOException e) {
Log.d("ooo", "Error accessing file: " + e.getMessage());
} catch (DocumentException e) { e.printStackTrace();
} return; }
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
return; }
});
break; }
}
String fileuri;
@Override
public void onActivityResult(int requestCode, int resultCode, Intent resultData) {
if (requestCode == 0 && resultCode == Activity.RESULT_OK) { Uri uri = null;
uri = resultData.getData(); fileuri = uri.getPath();
String parsedText = "";
try {
parsedText = "";
PdfReader reader = new PdfReader(fileuri); Integer n = reader.getNumberOfPages(); for (int i = 0; i < n; i++) {
parsedText = parsedText +
PdfTextExtractor.getTextFromPage(reader, i + 1).trim() + "\n"; }
reader.close();
String[] temp = parsedText.split("\\s+"); awal="";
for(int i=0; i<temp.length; i++)
awal+=(char)Integer.parseInt(temp[i]);
Toast.makeText(this, "File Dibuka", Toast.LENGTH_LONG).show();
Toast.makeText(this, parsedText, Toast.LENGTH_LONG).show(); } catch (IOException e) {
e.printStackTrace(); }
lokasi_file.setText(fileuri);
/* try {
String parsedText="";
PdfReader reader = new PdfReader(fileuri); Integer n = reader.getNumberOfPages();
Toast.makeText(dekripsi_file.this, fileuri + " " + n.toString(), Toast.LENGTH_SHORT).show();
for (int i = 0; i <n ; i++) { parsedText = parsedText+
PdfTextExtractor.getTextFromPage(reader, i + 1).trim()+"\n"; }
reader.close(); awal = parsedText; } catch (Exception e) { System.out.println(e); }
void methodWriteStorage(String data) {
String namaFileOutput = Environment.getExternalStorageDirectory() + "/Hasil Dekrisi Jeje.txt";
try {
PrintWriter pw = new PrintWriter(namaFileOutput); pw.println(data);
pw.close();
//AlertDialog dialog=new AlertDialog.Builder(this).create(); //dialog.setMessage("Hasil Enkripsi : " + data);
//dialog.show();
} catch (FileNotFoundException e) {
AlertDialog dialog = new AlertDialog.Builder(this).create(); dialog.setMessage("Error menulis data!\nKeterangan error:\n" + e.toString());
dialog.show(); }
} }
trithemius.java
package com.example.jessicatamara.myapplication4;
/**
* Created by JessicaTamara on 18/05/2017. */
public class trithemius { String index =
"abcdefghiklmnopqrstuwxyzjvABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"+' '+".,!"; char[] arrayindex= index.toCharArray();
private char[] createkey(String key, String plaintext){ char[] arrayplaintext = plaintext.toCharArray(); char[] arraykey = new char[arrayplaintext.length]; char[] filler = key.toCharArray();
int flag=0;
for (int i=0,j=0; i<arraykey.length; i++){ arraykey[i]=filler[j];
j++;
if (j==filler.length){ flag=1;
}
if (flag==1){ j=0; flag=0; }
}
return arraykey; }
private int getindex(char character){ for(int i=0; i<index.length(); i++){ if (character==arrayindex[i]){ return i;
} }
private char getcharacter(int indext){ for(int i=0; i<index.length(); i++){ if (i==indext){
return arrayindex[i]; }
}
return '0'; }
public String enkripsi_ttm(String plaintext, String key){ char[]arraykey = createkey(key, plaintext);
char[]arrayplaintext = plaintext.toCharArray();
char[]arrayciphertext = new char[arrayplaintext.length]; int p,k,c;
for (int i=0; i<arrayplaintext.length;i++){ if(getindex(arrayplaintext[i])==-1){ arrayciphertext[i]=arrayplaintext[i]; continue;
}
p= getindex(arrayplaintext[i]); k= getindex(arraykey[i]); c= (p+k)%index.length();
arrayciphertext[i]=getcharacter(c); }
String hasil = new String(arrayciphertext); return hasil;
}
public String dekripsi_ttm(String ciphertext, String key){ char[]arraykey = createkey(key, ciphertext);
char[]arrayciphertext = ciphertext.toCharArray();
char[]arrayplaintext = new char[arrayciphertext.length]; int p,k,c;
for (int i=0; i<arrayciphertext.length;i++){ if(getindex(arrayciphertext[i])==-1){ arrayplaintext[i]=arrayciphertext[i]; continue;
}
c= getindex(arrayciphertext[i]); k= getindex(arraykey[i]);
p= (c-k); if(p<0) {
p=p+index.length(); }
else{
p=p%index.length(); }
arrayplaintext[i]=getcharacter(p); }
String hasil = new String(arrayplaintext); return hasil;
doublet.java
package com.example.jessicatamara.myapplication4;
/**
* Created by JessicaTamara on 18/05/2017. */
public class doublet {
public Integer[] urutan(String key) { char[] kk1 = key.toCharArray();
Integer[] kk2 = new Integer[kk1.length]; for (int i = 0; i < kk2.length; i++) { kk2[i] = i;
}
for (int i = 0; i < kk1.length; i++) for (int j = 0; j < kk1.length; j++) if (kk1[i] < kk1[j]) {
char ctemp = kk1[i]; kk1[i] = kk1[j]; kk1[j] = ctemp; int itemp = kk2[i]; kk2[i] = kk2[j]; kk2[j] = itemp; }
return kk2; }
public String enkripsi_double(String plain, String key1, String key2) { String k1 = key1, k2 = key2, cipher1 = "", cipher2 = "";
Integer i1 = (int) Math.ceil(plain.length() * 1.0 / k1.length()); Integer j1 = k1.length();
char[][] tabel1 = new char[i1][j1]; int k = 0;
for (int i = 0; i < i1; i++) for (int j = 0; j < j1; j++) { if (k < plain.length())
tabel1[i][j] = plain.charAt(k); else
tabel1[i][j] = 'Ā'; k++;
}
Integer[] runtutan = urutan(k1);
for (int i = 0; i < runtutan.length; i++) for (int j = 0; j < i1; j++)
cipher1 += tabel1[j][runtutan[i]];
Integer i2 = (int) Math.ceil(cipher1.length() * 1.0 / k2.length()); Integer j2 = k2.length();
char[][] tabel2 = new char[i2][j2]; k = 0;
for (int i = 0; i < i2; i++) for (int j = 0; j < j2; j++) { if (k < cipher1.length())
else
tabel2[i][j] = 'Ī'; k++;
}
runtutan = urutan(k2);
for (int i = 0; i < runtutan.length; i++) for (int j = 0; j < i2; j++)
cipher2 += tabel2[j][runtutan[i]];
return cipher2; }
public String dekripsi_double(String cipher, String key1, String key2) {
String k1 = key1, k2 = key2, plain1 = "", plain2 = ""; Integer i1 = (cipher.length() / k2.length());
Integer j1 = k2.length();
char[][] tabel1 = new char[i1][j1]; int k = 0;
Integer[] runtutan = urutan(k2);
for (int i = 0; i < runtutan.length; i++) for (int j = 0; j < i1; j++) {
tabel1[j][runtutan[i]] = cipher.charAt(k); k++;
}
for (int i = 0; i < i1; i++) for (int j = 0; j < j1; j++) plain1 += tabel1[i][j];
String temp = "";
for (int i = 0; i < plain1.length(); i++) if (plain1.charAt(i) != 'İ')
temp += plain1.charAt(i); plain1 = temp;
Integer i2 = (plain1.length() / k1.length()); Integer j2 = k1.length();
char[][] tabel2 = new char[i2][j2]; k = 0;
runtutan = urutan(k1);
for (int i = 0; i < runtutan.length; i++) for (int j = 0; j < i2; j++) {
tabel2[j][runtutan[i]] = plain1.charAt(k); k++;
}
for (int i = 0; i < i2; i++) for (int j = 0; j < j2; j++) plain2 += tabel2[i][j];
temp = "";
temp += plain2.charAt(i); plain2 = temp;
return plain2; }
}
tentang.java
package com.example.jessicatamara.myapplication4;
/**
* Created by JessicaTamara on 06/04/2017. */
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity; import android.webkit.WebView;
public class tentang extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.tentang);
String text1 = "Nama : Jessica"; String text2 = "Nim : 131401134"; String text3 = "Stambuk : 2013";
String text4 = "Judul : Implementasi Super Enkripsi dengan
Algoritma Trithemius dan Double Transposition Cipher dalam Pengamanan File PDF Berbasis Android";
String text5 = "Program Studi S1 Ilmu Kompuer Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara "; String text6 = "2017";
WebView webView = (WebView) findViewById(R.id.webview2); webView.loadData("<p style=\"text-align: justify\">" + text1 + "</p>" +
"<p style=\"text-align: justify\">" + text2 + "</p>" +
"<p style=\"text-align: justify\">" + text3 + "</p>" +
"<p style=\"text-align: justify\">" + text4 + "</p>" +
"<p style=\"text-align: justify\">" + text5 + "</p>" +
"<p style=\"text-align: justify\">" + text6 + "</p>",
"text/html", "UTF-8"); }
}
bantuan.java
package com.example.jessicatamara.myapplication4;
* Created by JessicaTamara on 18/05/2017. */
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity; import android.webkit.WebView;
public class bantuan extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.bantuan);
String text1 = "1.Ukuran maksimal file adalah 1MB";
String text2 = "2.Disarankan menginputkan tiga buat password yang berbeda guna meningkatkan keamanan file";
String text3 = "3.Password yang diinputkan pada saat proses enkripsi harus sama dengan password yang diinputkan pada saat proses dekripsi.";
WebView webView = (WebView)findViewById(R.id.webview);
webView.loadData("<p style=\"text-align: justify\">" + text1 + "</p>"+
"<p style=\"text-align: justify\">" + text2 + "</p>"+
"<p style=\"text-align: justify\">" + text3 + "</p>",
"text/html", "UTF-8");
}