Simple Encryption for JavaScript
by naveen
HTML
<p>
<input type="text" id="mytext" />
<input type="button" id="mybutton" value="Encrypt String"/>
</p>
<div id="result"></div>
JavaScript
var _charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789%";
function generateKey() {
var str = "";
var tar;
tar = new Array();
for (var c = 0; c < _charset.length; c++) {
tar.push(_charset.substr(c, 1));
}
for (var c = 0; c < _charset.length; c++) {
str += tar.splice(Math.round(Math.random() * (tar.length - 1)), 1);
}
return str;
}
function encrypt(v, _key) {
var str = "";
var key = _key;
if (_key.length > 0 && v.length > 0) {
v = escape(v);
for (var c = 0; c < v.length; c++) {
var ch = _charset.indexOf(v.substr(c, 1));
if (ch > -1) {
str += key.substr(ch, 1);
key = rotateKey(key, v.charCodeAt(c));
}
}
return str;
} else {
return "";
}
}
function decrypt(v, _key) {
var str = "";
var key = _charset;
if (_key.length > 0 && v.length > 0) {
for (var c = 0; c < v.length; c++) {
var ch = _key.indexOf(v.substr(c, 1));
if (ch > -1) {
str += key.substr(ch, 1);
key = rotateKey(key, -key.charCodeAt(ch));
}
}
return unescape(str);
} else {
return "";
}
}
function rotateKey(s, amt) {
amt = amt % s.length;
if (amt < 0) {
amt = s.length + amt;
}
if (amt != 0) {
return s.substr(s.length - amt, amt) + s.substr(0, s.length - amt);
} else {
return unescape(s);
}
}
$("#mybutton").click(function() {
var pass = $("#mytext").val();
var msg = ""
var key = generateKey();
var encryptedString = encrypt(pass, key);
msg += "Encrypted String: " + encryptedString;
msg += "<br />";
var originalString = decrypt(encryptedString, key);
msg += "Decrypted String: " + originalString;
$("#result").html(msg);
});