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:

// 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:

var MattsPublicKeyString = cryptico.publicKeyString(MattsRSAkey);    

maka akan menampilkan seperti ini:

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.

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:

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

Mendecrypt Pesan

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

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

Tulisan Lain   PHPjs : Kumpulan Cara Implementasi Fungsi PHP di JavaScript

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

By alfach

Leave a Reply

Your email address will not be published. Required fields are marked *