/examples/dynamictable/public/phpolait/jsolait/lib/crypto.js
JavaScript | 81 lines | 80 code | 1 blank | 0 comment | 14 complexity | 76caff02f0d9b4af91fab1164fdde221 MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0
-
- Module("crypto", "0.1.2", function(mod){
- mod.listEncrypters=function(){
- var c=[];
- for(var attr in String.prototype){
- if(attr.slice(0, 8) == "encrypt_"){
- c.push(attr.slice(8));
- }
- }
- return c;
- }
- mod.listDecrypters=function(){
- var c=[];
- for(var attr in String.prototype){
- if(attr.slice(0, 8) == "decrypt_"){
- c.push(attr.slice(8));
- }
- }
- return c;
- }
- String.prototype.encrypt=function(crydec){
- var n = "encrypt_" + crydec;
- if(String.prototype[n]){
- var args=[];
- for(var i=1;i<arguments.length;i++){
- args[i-1] = arguments[i];
- }
- return String.prototype[n].apply(this, args);
- }else{
- throw new mod.Exception("Decrypter '%s' not found.".format(crydec));
- }
- }
- String.prototype.decrypt=function(crydec){
- var n = "decrypt_" + crydec;
- if(String.prototype[n]){
- var args=[];
- for(var i=1;i<arguments.length;i++){
- args[i-1] = arguments[i];
- }
- return String.prototype[n].apply(this, args);
- }else{
- throw new mod.Exception("Encrypter '%s' not found.".format(crydec));
- }
- }
- String.prototype.encrypt_xor=function(key){
- var e=new Array(this.length);
- var l=key.length;
- for(var i=0;i<this.length;i++){
- e[i] = String.fromCharCode(this.charCodeAt(i) ^ key.charCodeAt(i % l));
- }
- return e.join("");
- }
- String.prototype.decrypt_xor=String.prototype.encrypt_xor;
- String.prototype.encrypt_rc4=function(key){
- var sbox = new Array (256);
- for (var i=0; i<256; i++){
- sbox[i]=i;
- }
- var j=0;
- for (var i=0; i < 256; i++) {
- j = (j + sbox[i] + key.charCodeAt(i % key.length)) % 256;
- var tmp = sbox[i];
- sbox[i] = sbox[j];
- sbox[j] = tmp;
- }
- var i=256;
- var j=256;
- var rslt=new Array(this.length);
- for (var k=0; k < this.length; k++) {
- i = (i + 1) % 256;
- j = (j + sbox[i]) % 256;
- var tmp = sbox[i];
- sbox[i] = sbox[j];
- sbox[j] = tmp;
- t = (sbox[i] + sbox[j]) % 256;
- rslt[k] = String.fromCharCode(this.charCodeAt(k) ^ sbox[t]);
- }
- return rslt.join("");
- }
- String.prototype.decrypt_rc4=String.prototype.encrypt_rc4;
- })