
Java Script punya fungsi (method) yang pas untuk ini, yaitu : charCodeAt(). Method ini digunakan untuk mengkodekan karakter tertentu menjadi Unicode.
Syntax-nya : string.charCodeAt(index);
index adalah urutan (array) dari string, dimulai angka 0.
Fungsi enkrip selain menggunakan charCodeAt(), juga mengubah hasil ini dari angka desimal ke angka hexa (berbasis 16). Hasilnya dibuat 2 digit hexa, dengan awalan tanda '%'.
That's all.
Let's do it. Here's the code.
function doencrypt(theform) {
if (theform.code.value == "") {
alert("No HTML code to encrypt");
return false;
} else {
enctext=encrypt(theform.code.value);
codetocopy="";
theform.ecode.value=codetocopy;
}
return false;
}
fungsi di atas, intinya ada di
enctext=encrypt(theform.code.value);
yaitu untuk meng-enkrip semua string yang ada di variabel masukan 'theform'. apa isinya fungsi encrypt?
Yuk kita lanjutkan
function encrypt(tx) {
var codehex='';
var i;
for (i=0; i
codehex += '%'+hexfromdec(tx.charCodeAt(i))
}
return codehex;
}
fungsi di atas inilah fungsi utama dari pembahasan kali ini. Method charCodeAt digunakan untuk meng-unicode
satu persatu masukan tx, kemudian dilanjut dengan fungsi buatan hexfromdec yang akan mengubah hasil charCodeAt dalam bentuk desimal (berbasis 10) ke hexa (berbasis 16).
Bagaimana fungsi hexfromdec? Lanjut..
function hexfromdec(num) {
hex1 = Math.round(num/16 - .5);
hex2 = num - hex1 * 16;
return (""+getletter(hex1)+getletter(hex2));
}
Ini dia fungsi hexfromdec. Intinya adalah hasil desimal (kode HTML memiliki kode dari 0 s/d 255 dibuat menjadi 2 digit hexa (00 s/d FF).
Catatan pengingat : Hexa adalah numerik berbasis 16, urutannya adalah :
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,10,11,12,...,19,1A ,1B,1C,1D,1E,1F,20,21,22,... dst.
hex1 adalah angka hexa untuk puluhan, dan hex2 adalah angka hexa untuk satuan. Sedikit tambahan, di sini akan kita gunakan fungsi buatan getletter untuk mengubah angka desimal 10 s/d 15 menjadi A,B,C,D,E dan F.
Here we go..
function getletter(num) {
if (num <>
return num;
}
else {
if (num == 10) { return "A" }
if (num == 11) { return "B" }
if (num == 12) { return "C" }
if (num == 13) { return "D" }
if (num == 14) { return "E" }
if (num == 15) { return "F" }
}
}
Ini fungsi terakhir. 10 menjadi "A", 11 menjadi "B" dst, sampai 15 menjadi "F".
Bagaimana mengaplikasikannya? Berikut kode selengkapnya.
";
theform.ecode.value=codetocopy;
}
return false;
}
function encrypt(tx) {
var codehex='';
var i;
for (i=0; i
codehex += '%'+hexfromdec(tx.charCodeAt(i))
}
return codehex;
}
function hexfromdec(num) {
hex1 = Math.round(num/16 - .5);
hex2 = num - hex1 * 16;
return (""+getletter(hex1)+getletter(hex2));
}
function getletter(num) {
if (num <>
return num;
}
else {
if (num == 10) { return "A" }
if (num == 11) { return "B" }
if (num == 12) { return "C" }
if (num == 13) { return "D" }
if (num == 14) { return "E" }
if (num == 15) { return "F" }
}
}
Kode di atas silakan dicopy trus disimpan pake nama "enkrip.html" (misalnya). Jalankan (dobel klik) file enkrip.html tsb.
Sim-salabim jadi apa? prok-prok-prok.. Jadinya kayak di bawah ini..

Skrinsut :

Sumber : http://init.javabeanku.com/?act=1001@24
0 komentar:
Posting Komentar