Lompat ke konten
A alfach.com

Cryptico.js : Library Javascript untuk Melakukan Enkripsi

A alfach.com
2 menit baca

Dalam melakukan proses form adakalanya informasi yang dialirkan bersifat rahasia, maka salah satu bentuk keamanan yang bisa dilakukan dengan melakukan enkripsi terhadap informasi tersebut. Untuk javascript, terdapat library untuk melakukannya, yaitu cryptico.js. cryptico.js melakukan encrypt pada text di client-side.

cryptico.js mendukung  RSA + AES methods dan text dapat dienkripsi melalui bit yang diberikan  (228, 1024, etc.).

Isi yang dienkripsi dengan menggunakan sebuah public key dan hanya dapat didecrypt dengan kunci public key tersebut, yang tentu hanya jika sudah dimiliki oleh penerima

Cryptico.js tidak memerlukan framework JS apapun dan terdokumentasikan dengan baik.

Berikut ini beberapa sample nya:

Membuat RSA Key Pair dan Public Key String

Sam ingin mengirim pesan terenkripsi ke Matt. Dalam hal ini, Sam membutuhkan public key string Matt. Public key pair sendiri dapat dibuat oleh Maat seperti ini:

Shell
// The passphrase used to repeatably generate this RSA key.
var PassPhrase = "The Moon is a Harsh Mistress."; 

// The length of the RSA key, in bits.
var Bits = 1024; 

var MattsRSAkey = cryptico.generateRSAKey(PassPhrase, Bits);

Public key string Matt dapat dibuat seperti ini:

Shell
var MattsPublicKeyString = cryptico.publicKeyString(MattsRSAkey);

maka akan menampilkan seperti ini:

Kode
uXjrkGqe5WuS7zsTg6Z9DuS8cXLFz38ue+xrFzxrcQJCXtVccCoUFP2qH/AQ
4qMvxxvqkSYBpRm1R5a4/NdQ5ei8sE8gfZEq7dlcR+gOSv3nnS4/CX1n5Z5m
8bvFPF0lSZnYQ23xlyjXTaNacmV0IuZbqWd4j9LfdAKq5dvDaoE=

Mengenkripsi Pesan

Selanjutnya Matt mengirim public key stringnya ke Sam. Jadi Sam bisa mengenkripsi pesannya ke Matt.

Shell
var PlainText = "Matt, I need you to help me with my Starcraft strategy.";

var EncryptionResult = cryptico.encrypt(PlainText, MattsPublicKeyString);

encryptionResult.cipher merupakan isi pesan yang sudah terenkripsi, hasilnya seperti ini:

Kode
OOHoAlfm6Viyl7afkUVRoYQv24AfdLnxaay5GjcqpxvEK+dph5kUFZEZIFKo
vVoHoZbtUMekSbMqHQr3wNNpvcNWr4E3DgNLfMZQA1pCAUVmPjNM1ZQmrkKY
HPKvkhmVKaBiYAJGoO/YiFfKnaylLpKOYJZctkZc4wflZcEEqqg=?cJPt71I
HcU5c2LgqGXQKcx2BaAbm25Q2Ku94c933LX5MObL9qbTJEVEv29U0C3gIqcd
qwMV6nl33GtHjyRdHx5fZcon21glUKIbE9P71NwQ=

Mendecrypt Pesan

Sam mengirim pesan yang terenkripsi ke Matt. Pesannya dapat di-decrypt seperti ini:

JavaScript
var CipherText = "OOHoAlfm6Viyl7afkUVRoYQv24AfdLnxaay5GjcqpxvEK+dph5kUFZEZIFKo 
                  vVoHoZbtUMekSbMqHQr3wNNpvcNWr4E3DgNLfMZQA1pCAUVmPjNM1ZQmrkKY 
                  HPKvkhmVKaBiYAJGoO/YiFfKnaylLpKOYJZctkZc4wflZcEEqqg=?cJPt71I 
                  HcU5c2LgqGXQKcx2BaAbm25Q2Ku94c933LX5MObL9qbTJEVEv29U0C3gIqcd 
                  qwMV6nl33GtHjyRdHx5fZcon21glUKIbE9P71NwQ=";

var DecryptionResult = cryptico.decrypt(CipherText, MattsRSAkey);

Pesan yang sudah di-decrypt ada di DecryptionResult.plaintext

Untuk mendownload dan dokumentasi lebih jelas nya bisa ke https://github.com/wwwtyro/cryptico

Bacaan terkait

php

Menerapkan IP Blocker di Laravel

Untuk meningkatkan security di website, salah satunya dengan menerapkan IP blocker atau mem-blokir IP address yang mengakses website. Di laravel salah satunya dengan...

1 menit

Komentar (0)

Belum ada komentar. Jadilah yang pertama.

Tulis komentar

Komentar akan dimoderasi sebelum tampil.

Tidak akan dipublikasikan.