Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class crypt0
- {
- //String to be encrypted
- private $rawstring;
- //String modified to fix mis-match lengths
- //Decryption Key as String
- private $key;
- //Subkey is used for in the event that the key is longer than the string to be encrypted
- private $subkey;
- //Key made to be the length of the rawstring
- private $modkey;
- //Encrypted/Decrypted String
- public $resStr;
- //Combines key and subkey to make the modkey
- private function combineKeys(){
- while (strlen($this->subkey) < strlen($this->modkey)) {
- $this->subkey .= $this->subkey;
- }
- $this->subkey = substr($this->subkey, 0, strlen($this->modkey));
- $subbits = str_split($this->subkey);
- $modbits = str_split($this->modkey);
- $modkey = "";
- foreach ($subbits as $x => $v) {
- $subbits[$x] = $this->txt2Num($v);
- $modbits[$x] = $this->txt2Num($modbits[$x]);
- if ($modbits[$x] + $subbits[$x] > 94) {
- $modkey .= ($this->num2Txt($modbits[$x] + $subbits[$x] - 94));
- } else {
- $modkey .= ($this->num2Txt($modbits[$x] + $subbits[$x]));
- }
- }
- return $modkey;
- }
- //Function to make key match length of string to be encrypted
- private function matchlength()
- {
- if(strlen($this->key) > strlen($this->rawstring)){
- $this->subkey = substr($this->key,strlen($this->rawstring));
- $this->modkey = substr($this->key,0,strlen($this->rawstring));
- $this->modkey = $this->combineKeys();
- }else{
- $this->modkey = "";
- while (strlen($this->modkey) < strlen($this->rawstring)) {
- $this->modkey .= $this->key;
- }
- $this->modkey = substr($this->modkey, 0, strlen($this->rawstring));
- }
- }
- private function txt2Num($i)
- {
- switch ($i) {
- case("a"):
- $r = 0;
- break;
- case("b"):
- $r = 1;
- break;
- case("c"):
- $r = 2;
- break;
- case("d"):
- $r = 3;
- break;
- case("e"):
- $r = 4;
- break;
- case("f"):
- $r = 5;
- break;
- case("g"):
- $r = 6;
- break;
- case("h"):
- $r = 7;
- break;
- case("i"):
- $r = 8;
- break;
- case("j"):
- $r = 9;
- break;
- case("k"):
- $r = 10;
- break;
- case("l"):
- $r = 11;
- break;
- case("m"):
- $r = 12;
- break;
- case("n"):
- $r = 13;
- break;
- case("o"):
- $r = 14;
- break;
- case("p"):
- $r = 15;
- break;
- case("q"):
- $r = 16;
- break;
- case("r"):
- $r = 17;
- break;
- case("s"):
- $r = 18;
- break;
- case("t"):
- $r = 19;
- break;
- case("u"):
- $r = 20;
- break;
- case("v"):
- $r = 21;
- break;
- case("w"):
- $r = 22;
- break;
- case("x"):
- $r = 23;
- break;
- case("y"):
- $r = 24;
- break;
- case("z"):
- $r = 25;
- break;
- case("A"):
- $r = 26;
- break;
- case("B"):
- $r = 27;
- break;
- case("C"):
- $r = 28;
- break;
- case("D"):
- $r = 29;
- break;
- case("E"):
- $r = 30;
- break;
- case("F"):
- $r = 31;
- break;
- case("G"):
- $r = 32;
- break;
- case("H"):
- $r = 33;
- break;
- case("I"):
- $r = 34;
- break;
- case("J"):
- $r = 35;
- break;
- case("K"):
- $r = 36;
- break;
- case("L"):
- $r = 37;
- break;
- case("M"):
- $r = 38;
- break;
- case("N"):
- $r = 39;
- break;
- case("O"):
- $r = 40;
- break;
- case("P"):
- $r = 41;
- break;
- case("Q"):
- $r = 42;
- break;
- case("R"):
- $r = 43;
- break;
- case("S"):
- $r = 44;
- break;
- case("T"):
- $r = 45;
- break;
- case("U"):
- $r = 46;
- break;
- case("V"):
- $r = 47;
- break;
- case("W"):
- $r = 48;
- break;
- case("X"):
- $r = 49;
- break;
- case("Y"):
- $r = 50;
- break;
- case("Z"):
- $r = 51;
- break;
- case("`"):
- $r = 52;
- break;
- case("1"):
- $r = 53;
- break;
- case("2"):
- $r = 54;
- break;
- case("3"):
- $r = 55;
- break;
- case("4"):
- $r = 56;
- break;
- case("5"):
- $r = 57;
- break;
- case("6"):
- $r = 58;
- break;
- case("7"):
- $r = 59;
- break;
- case("8"):
- $r = 60;
- break;
- case("9"):
- $r = 61;
- break;
- case("0"):
- $r = 62;
- break;
- case("-"):
- $r = 63;
- break;
- case("="):
- $r = 64;
- break;
- case("["):
- $r = 65;
- break;
- case("]"):
- $r = 66;
- break;
- case("\\"):
- $r = 67;
- break;
- case(";"):
- $r = 68;
- break;
- case("'"):
- $r = 69;
- break;
- case(","):
- $r = 70;
- break;
- case("."):
- $r = 71;
- break;
- case("/"):
- $r = 72;
- break;
- case("~"):
- $r = 73;
- break;
- case("!"):
- $r = 74;
- break;
- case("@"):
- $r = 75;
- break;
- case("#"):
- $r = 76;
- break;
- case("$"):
- $r = 77;
- break;
- case("%"):
- $r = 78;
- break;
- case("^"):
- $r = 79;
- break;
- case("&"):
- $r = 80;
- break;
- case("*"):
- $r = 81;
- break;
- case("("):
- $r = 82;
- break;
- case(")"):
- $r = 83;
- break;
- case("_"):
- $r = 84;
- break;
- case("+"):
- $r = 85;
- break;
- case("{"):
- $r = 86;
- break;
- case("}"):
- $r = 87;
- break;
- case("|"):
- $r = 88;
- break;
- case(":"):
- $r = 89;
- break;
- case("\""):
- $r = 90;
- break;
- case("<"):
- $r = 91;
- break;
- case(">"):
- $r = 92;
- break;
- case("?"):
- $r = 93;
- break;
- case("\s"):
- $r = 94;
- break;
- default:
- $r = $i;
- }
- return $r;
- }
- private function num2Txt($i)
- {
- switch ($i) {
- case(0):
- $r = "a";
- break;
- case(1):
- $r = "b";
- break;
- case(2):
- $r = "c";
- break;
- case(3):
- $r = "d";
- break;
- case(4):
- $r = "e";
- break;
- case(5):
- $r = "f";
- break;
- case(6):
- $r = "g";
- break;
- case(7):
- $r = "h";
- break;
- case(8):
- $r = "i";
- break;
- case(9):
- $r = "j";
- break;
- case(10):
- $r = "k";
- break;
- case(11):
- $r = "l";
- break;
- case(12):
- $r = "m";
- break;
- case(13):
- $r = "n";
- break;
- case(14):
- $r = "o";
- break;
- case(15):
- $r = "p";
- break;
- case(16):
- $r = "q";
- break;
- case(17):
- $r = "r";
- break;
- case(18):
- $r = "s";
- break;
- case(19):
- $r = "t";
- break;
- case(20):
- $r = "u";
- break;
- case(21):
- $r = "v";
- break;
- case(22):
- $r = "w";
- break;
- case(23):
- $r = "x";
- break;
- case(24):
- $r = "y";
- break;
- case(25):
- $r = "z";
- break;
- case(26):
- $r = "A";
- break;
- case(27):
- $r = "B";
- break;
- case(28):
- $r = "C";
- break;
- case(29):
- $r = "D";
- break;
- case(30):
- $r = "E";
- break;
- case(31):
- $r = "F";
- break;
- case(32):
- $r = "G";
- break;
- case(33):
- $r = "H";
- break;
- case(34):
- $r = "I";
- break;
- case(35):
- $r = "J";
- break;
- case(36):
- $r = "K";
- break;
- case(37):
- $r = "L";
- break;
- case(38):
- $r = "M";
- break;
- case(39):
- $r = "N";
- break;
- case(40):
- $r = "O";
- break;
- case(41):
- $r = "P";
- break;
- case(42):
- $r = "Q";
- break;
- case(43):
- $r = "R";
- break;
- case(44):
- $r = "S";
- break;
- case(45):
- $r = "T";
- break;
- case(46):
- $r = "U";
- break;
- case(47):
- $r = "V";
- break;
- case(48):
- $r = "W";
- break;
- case(49):
- $r = "X";
- break;
- case(50):
- $r = "Y";
- break;
- case(51):
- $r = "Z";
- break;
- case(52):
- $r = "`";
- break;
- case(53):
- $r = "1";
- break;
- case(54):
- $r = "2";
- break;
- case(55):
- $r = "3";
- break;
- case(56):
- $r = "4";
- break;
- case(57):
- $r = "5";
- break;
- case(58):
- $r = "6";
- break;
- case(59):
- $r = "7";
- break;
- case(60):
- $r = "8";
- break;
- case(61):
- $r = "9";
- break;
- case(62):
- $r = "0";
- break;
- case(63):
- $r = "-";
- break;
- case(64):
- $r = "=";
- break;
- case(65):
- $r = "[";
- break;
- case(66):
- $r = "]";
- break;
- case(67):
- $r = "\\";
- break;
- case(68):
- $r = ";";
- break;
- case(69):
- $r = "'";
- break;
- case(70):
- $r = ",";
- break;
- case(71):
- $r = ".";
- break;
- case(72):
- $r = "/";
- break;
- case(73):
- $r = "~";
- break;
- case(74):
- $r = "!";
- break;
- case(75):
- $r = "@";
- break;
- case(76):
- $r = "#";
- break;
- case(77):
- $r = "$";
- break;
- case(78):
- $r = "%";
- break;
- case(79):
- $r = "^";
- break;
- case(80):
- $r = "&";
- break;
- case(81):
- $r = "*";
- break;
- case(82):
- $r = "(";
- break;
- case(83):
- $r = ")";
- break;
- case(84):
- $r = "_";
- break;
- case(85):
- $r = "+";
- break;
- case(86):
- $r = "{";
- break;
- case(87):
- $r = "}";
- break;
- case(88):
- $r = "|";
- break;
- case(89):
- $r = ":";
- break;
- case(90):
- $r = "\"";
- break;
- case(91):
- $r = "<";
- break;
- case(92):
- $r = ">";
- break;
- case(93):
- $r = "?";
- break;
- case(94):
- $r = "\s";
- break;
- default:
- $r = $i;
- }
- return $r;
- }
- private function eStr()
- {
- //split up the string to be encrypted
- $rawbits = str_split($this->rawstring);
- //and the modified key
- $keybits = str_split($this->modkey);
- $encryptedstring = "";
- foreach ($rawbits as $x => $v) {
- $rawbits[$x] = $this->txt2Num($v);
- $keybits[$x] = $this->txt2Num($keybits[$x]);
- if ($rawbits[$x] + $keybits[$x] > 94) {
- $encryptedstring .= ($this->num2Txt($rawbits[$x] + $keybits[$x] - 94));
- } else {
- $encryptedstring .= ($this->num2Txt($rawbits[$x] + $keybits[$x]));
- }
- }
- return $encryptedstring;
- }
- private function dStr(){
- //split up the string to be encrypted
- $rawbits = str_split($this->rawstring);
- //and the modified key
- $keybits = str_split($this->modkey);
- $decryptedstring = "";
- foreach ($rawbits as $x => $v) {
- $rawbits[$x] = $this->txt2Num($v);
- $keybits[$x] = $this->txt2Num($keybits[$x]);
- if ($rawbits[$x] - $keybits[$x] < 0) {
- $decryptedstring .= ($this->num2Txt(94 + ($rawbits[$x] - $keybits[$x])));
- } else {
- $decryptedstring .= ($this->num2Txt($rawbits[$x] - $keybits[$x]));
- }
- }
- return $decryptedstring;
- }
- function __construct($string, $key, $action = 'e')
- {
- $this->rawstring = $string;
- $this->key = $key;
- $this->matchlength();
- if($action == 'e'){
- $this->resStr = $this->eStr();
- }elseif($action == 'd'){
- $this->resStr = $this->dStr();
- }else{
- exit("Invalid Action");
- }
- }
- }
- //$enc = new crypt0($_POST['data']['string'], $_POST['data']['key'], $_POST['data']['action']);
- //$enc = new crypt0("strings", "1234567", 'e');
- $enc = new crypt0(".~/=,=$", "1234567", 'd');
- //
- echo $enc->resStr;
- //$chars = "abcdefghijklmnopqrstuvwxyz";
- //
- //echo strtoupper($chars);
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement