<HTML>
<HEAD>
<TITLE>Monoalphabetic Encryption/Decryption</TITLE>
[removed]
// encrypt/decrypt using a monoalphabetic cipher
function do_encrypt()
{
var key = document.cipher.key.value.toLowerCase();
// sanity check
if ( key.length != 26 )
{
window.alert("Key length is not 26 letters");
return;
}
// get the message to encrypt
var plaintext = document.cipher.plain.value.toLowerCase();
var ciphertext = "";
// encrypt it
for( var i=0; i<plaintext.length; i++ )
{
// get this character as ascii
var curchar = plaintext.charAt(i);
// is it a letter?
if ( curchar >='a' && curchar <= 'z' )
{
// yes, encrypt
// convert 'a'->0, 'b'->1, ... 'z'->25
var charpos = curchar.charCodeAt(0)-97;
// encrypt it
ciphertext += key.charAt(charpos);
}
else
{
// not a letter, leave it alone
ciphertext += curchar;
}
} // for i
document.cipher.enc.value = ciphertext;
}
function do_decrypt()
{
var key = document.cipher.key.value.toLowerCase();
// sanity check
if ( key.length != 26 )
{
window.alert("Key length is not 26 letters");
return;
}
// get the message to encrypt
var ciphertext = document.cipher.enc.value.toLowerCase();
var plaintext = "";
// encrypt it
for( var i=0; i<ciphertext.length; i++ )
{
// get this character as ascii
var curchar = ciphertext.charAt(i);
// is it a letter?
if ( curchar >='a' && curchar <= 'z' )
{
// yes, decrypt
// decrypt this letter
var charpos = key.indexOf( curchar );
// encrypt it
plaintext += String.fromCharCode( charpos+97 );
}
else
{
// not a letter, leave it alone
plaintext += curchar;
}
} // for i
document.cipher.plain.value = plaintext;
}
// generate a random key
function gen_key()
{
var key = new Array( 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u',
'v', 'w', 'x', 'y', 'z' );
var i,j;
for( i=0; i<25; i++ )
{
// swap this character with a random character
// generate a random position in the array
j = Math.floor( Math.random()*26 );
// do the swap
var t = key[i];
key[i] = key[j];
key[j] = t;
}
// give it to the user
document.cipher.key.value = key.join(''
![Wink emoticon-Wink](https://s.kaskus.id/images/smilies/sumbangan/13.gif)
;
}
[removed]
</HEAD>
<BODY>
<FORM name="cipher">
Mari Mengenskripsi:
<table>
<tr><td>kode pesan:</td><td><input type="text" name="key" size=50
value="DEFGHIJKLMNOPQRSTUVWXYZABC" readonly></td></tr>
<tr><td>text asli:</td><td><input type="text" name="plain" size=50></td></tr>
<tr><td>text enskripsi:</td><td><input type="text" name="enc" size=50></td></tr>
</table>
<input type="button" value="Encrypt">*
<input type="button" value="Decrypt">
</form>
</body>
</html>