Implementasi Tanda Tangan Digital dengan PHP Code
Tanda tangan digital merupakan tanda tangan seseorang dalam bentuk digital. Konsep termudah yang bisa dipahami oleh semua orang. Oleh karena itu syarat yang harus di penuhi oleh Tanda tangan digital adalah sbb:
- UNIK (tidak ada yang sama satu dengan yang lain)
- Dapat memberikan informasi siapa pemiliknya
- SAH dimata HUKUM
Sumber : https://osd.lemsaneg.go.id/public/home |
Oleh karena itu disini saya mencoba mendokumentasikan hasil Implementasi Tanda tangan digital pada aplikasi berbasis Web dengan bahasa pemrograman PHP.
Kebutuhan untuk implementasi :
Kebutuhan untuk implementasi :
- PHP 7 (sangat direkomendasi)
- Library TCPDF (https://github.com/tecnickcom/tcpdf) (direkomendasikan)
- Library PDF Generator seperti FPDF, mPDF, DOMPDF, Snappy, dll (opsional)
- Framework (sesuai pilihan) disini saya menggunakan CI
- Local Server (sesuai pilihan) disini saya mengguakan Apache dari XAMPP
- Sertifikat Elektronik dan Kunci Privat (yang di enkripsi)
Contoh saya letakan pada direktori C:\xampp\htdocs\modultte\application\libraries\
selanjutnya kita buat view dengan tampilan sebagai berikut:
source code :
<form action="<?php echo site_url('sign/signpdf'); ?>" method="POST" enctype="multipart/form-data">
<label class="btn btn-warning btn-block">
Pilih File PDF<input type="file" name="file" id="file" required="true" multiple style="display: none;" accept=".pdf"><br>
</label>
<label class="btn btn-warning btn-block">
Pilih Sertifikat Anda<input type="file" name="pub" id="pub" required="true" multiple style="display: none;" accept=".crt,.pem"><br>
</label>
<label class="btn btn-warning btn-block">
Pilih Kunci Privat Anda<input type="file" name="priv" id="priv" required="true" multiple style="display: none;" accept=".pem,.key"><br>
</label>
PASSPHRASE <input type="password" name="password" id="password" required="true"><br>
<button type="submit" class="btn btn-success btn-block">Sign File</button><br>
</form>
Selanjutnya buat sebuah controller untuk melakukan Signing dokumen PDF yang di inputkan:
$filename = str_replace(' ','','DocSign_' . date('YmdHis') . '.pdf');
$pass = $this->input->post('password');
$this->load->library('tcpdf/tcpdf_import');
$this->load->library('fpdi/Fpdi');
class_exists('TCPDF', true);
$tcpdf = new FPDI();
$row = $tcpdf->setSourceFile($file);
for($i=1;$i<=$row;$i++){
$tcpdf->addPage();
$tplIdx = $tcpdf->importPage($i);
$tcpdf->useTemplate($tplIdx);
}
$taut='Diisikan dengan informasi yang diinginkan'; #link download file pdf yang telah di tanda tangani secara digital
$tcpdf->write2DBarcode($taut, 'QRCODE,H', 20,190,20,20);
$info = array(
'Name' => 'Nama Penanda Tangan',
'Location' => 'ID',
'Reason' => 'Otentikasi Dokumen PDF',
'ContactInfo' => 'contact user',
);
$tcpdf->setSignature(file_get_contents($pub), file_get_contents($priv), $pass, '', 2, $info);
$tcpdf->Image(APPPATH.'cert/tte4.jpg', 117, 201, 60, 18, 'JPG');
$tcpdf->setSignatureAppearance(117, 201, 60, 18);
$tcpdf->Output($filename, 'D');
unlink($file.$filename);
unlink($file);
unlink($priv);
unlink($pub);
}}
Selanjutnya tinggal di jalankan.
maka akan menghasilkan file PDF yang sudah di tanda tangani secara digital.
berikut hasilnya:
Demikian dokumentasi implementasi Tanda tangan digital pada file PDF pada aplikasi berbasis Web menggunakan PHP dg framework CI.
semoga bermanfaat,
terimakasih
saya sudah mengikuti tutorial yang anda berikan, akan tetapi hasilnya adalah sertifikat digital bukan tanda tangan digital...
BalasHapusdan apakah bisa tcpdf menampilkan gambar tanda tangan digital seperti yang anda contohkan..??
kalau tanda tangan digital tersebut dilakukan secara manual menggunakan adobe reader hal itu sangat mungkin dilakukan..
mohon konfirmasinya pada nomor WA saya di +62 895-1698-1870
Jadi beda antara tanda tangan digital dengan sertifikat digital.. bedanya adalah kalo sertifikat digital itu merupakan identitas elektronik suatu entitas dalam sebuah sistem elektronik. Atau bisa disebut KTP dalam dunia digital (gampangnya seperti itu). Nah sertifikat digital ini yg digunakan sebagai sapah satu kebutuhan yg diperlukan saat melakukan tanda tangan digital pada sebuah dokumen digital.
HapusKalo visualisasi TTD dlm bentuk sebuah dokumen itu bisa di lakukan spt yg ada pada aplikasi adobe. Dg mnggunakan fungsi setSignatureAppearence() kalo di lib TCPDF
HapusAssalamualaikum wr wb
BalasHapussaya sudah mengikuti tutorial pada artikel ini, alhamdulillah berjalan dengan lancar dan sangat membantu.
apakah untuk proses verifikasi tanda tangan pada file pdf juga dapat dilakukan dengan tcpdf atau dengan lib lain ?
untuk verifikasi dengan lib laen, akan di publish pada tulisan berikutnya
HapusBoleh minta source codenya mas?
BalasHapusboleh minta source code nya mas ?
BalasHapusiya mas, kayanya penjelasan kurang lengkap, kalo boleh mohon ijin untuk source nya
BalasHapusKomentar ini telah dihapus oleh pengarang.
BalasHapuscara membuat Sertifikat Elektronik dan Kunci Privat saat kita memilih itu darimana,bisa dijelaskan.terima kasih
BalasHapusmohon tutorial lengkapnya dong
BalasHapusBoleh minta source codenya mas?
BalasHapus