Guest User

Untitled

a guest
Dec 15th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 37.05 KB | None | 0 0
  1. <?php
  2. class pcrypt_blowfish
  3. {
  4.  
  5.     public $sbox0 = array
  6.     (
  7.         0 => 3.50965e+009,
  8.         1 => 2.5648e+009,
  9.         2 => 805139163,
  10.         3 => 3.49142e+009,
  11.         4 => 3.1018e+009,
  12.         5 => 1780907670,
  13.         6 => 3.12873e+009,
  14.         7 => 4.04623e+009,
  15.         8 => 614570311,
  16.         9 => 3.01265e+009,
  17.         10 => 134345442,
  18.         11 => 2.24074e+009,
  19.         12 => 1667834072,
  20.         13 => 1901547113,
  21.         14 => 2.7573e+009,
  22.         15 => 4.10329e+009,
  23.         16 => 227898511,
  24.         17 => 1921955416,
  25.         18 => 1904987480,
  26.         19 => 2.18243e+009,
  27.         20 => 2069144605,
  28.         21 => 3.2607e+009,
  29.         22 => 2.62045e+009,
  30.         23 => 720527379,
  31.         24 => 3.31885e+009,
  32.         25 => 677414384,
  33.         26 => 3.39329e+009,
  34.         27 => 3.10137e+009,
  35.         28 => 2.39035e+009,
  36.         29 => 1614419982,
  37.         30 => 1822297739,
  38.         31 => 2.95479e+009,
  39.         32 => 3.60851e+009,
  40.         33 => 3.17412e+009,
  41.         34 => 2024746970,
  42.         35 => 1432378464,
  43.         36 => 3.86434e+009,
  44.         37 => 2.85774e+009,
  45.         38 => 1464375394,
  46.         39 => 1676153920,
  47.         40 => 1439316330,
  48.         41 => 715854006,
  49.         42 => 3.03329e+009,
  50.         43 => 289532110,
  51.         44 => 2.70667e+009,
  52.         45 => 2087905683,
  53.         46 => 3.01872e+009,
  54.         47 => 1668267050,
  55.         48 => 732546397,
  56.         49 => 1947742710,
  57.         50 => 3.46215e+009,
  58.         51 => 2.60935e+009,
  59.         52 => 2.95009e+009,
  60.         53 => 1814351708,
  61.         54 => 2050118529,
  62.         55 => 680887927,
  63.         56 => 999245976,
  64.         57 => 1800124847,
  65.         58 => 3.30091e+009,
  66.         59 => 1713906067,
  67.         60 => 1641548236,
  68.         61 => 4.21329e+009,
  69.         62 => 1216130144,
  70.         63 => 1575780402,
  71.         64 => 4.01843e+009,
  72.         65 => 3.91784e+009,
  73.         66 => 3.69349e+009,
  74.         67 => 3.94927e+009,
  75.         68 => 596196993,
  76.         69 => 3.54987e+009,
  77.         70 => 258830323,
  78.         71 => 2.21382e+009,
  79.         72 => 772490370,
  80.         73 => 2.76012e+009,
  81.         74 => 1774776394,
  82.         75 => 2.65287e+009,
  83.         76 => 566650946,
  84.         77 => 4.14249e+009,
  85.         78 => 1728879713,
  86.         79 => 2.88277e+009,
  87.         80 => 1783734482,
  88.         81 => 3.6294e+009,
  89.         82 => 2.51761e+009,
  90.         83 => 2.87423e+009,
  91.         84 => 1861159788,
  92.         85 => 326777828,
  93.         86 => 3.12449e+009,
  94.         87 => 2130389656,
  95.         88 => 2.71695e+009,
  96.         89 => 967770486,
  97.         90 => 1724537150,
  98.         91 => 2.18543e+009,
  99.         92 => 2.36444e+009,
  100.         93 => 1164943284,
  101.         94 => 2105845187,
  102.         95 => 998989502,
  103.         96 => 3.7654e+009,
  104.         97 => 2.24403e+009,
  105.         98 => 1075463327,
  106.         99 => 1455516326,
  107.         100 => 1322494562,
  108.         101 => 910128902,
  109.         102 => 469688178,
  110.         103 => 1117454909,
  111.         104 => 936433444,
  112.         105 => 3.49032e+009,
  113.         106 => 3.67525e+009,
  114.         107 => 1240580251,
  115.         108 => 122909385,
  116.         109 => 2.15752e+009,
  117.         110 => 634681816,
  118.         111 => 4.14246e+009,
  119.         112 => 3.82509e+009,
  120.         113 => 3.0614e+009,
  121.         114 => 2.5405e+009,
  122.         115 => 79693498,
  123.         116 => 3.2491e+009,
  124.         117 => 1084186820,
  125.         118 => 1583128258,
  126.         119 => 426386531,
  127.         120 => 1761308591,
  128.         121 => 1047286709,
  129.         122 => 322548459,
  130.         123 => 995290223,
  131.         124 => 1845252383,
  132.         125 => 2.60365e+009,
  133.         126 => 3.43102e+009,
  134.         127 => 2.94222e+009,
  135.         128 => 3.2026e+009,
  136.         129 => 3.7279e+009,
  137.         130 => 1712269319,
  138.         131 => 422464435,
  139.         132 => 3.23457e+009,
  140.         133 => 1170764815,
  141.         134 => 3.52396e+009,
  142.         135 => 3.11768e+009,
  143.         136 => 1434042557,
  144.         137 => 442511882,
  145.         138 => 3.60088e+009,
  146.         139 => 1076654713,
  147.         140 => 1738483198,
  148.         141 => 4.21315e+009,
  149.         142 => 2.39324e+009,
  150.         143 => 3.6775e+009,
  151.         144 => 1014306527,
  152.         145 => 4.25102e+009,
  153.         146 => 793779912,
  154.         147 => 2.90281e+009,
  155.         148 => 842905082,
  156.         149 => 4.24696e+009,
  157.         150 => 1395751752,
  158.         151 => 1040244610,
  159.         152 => 2.65685e+009,
  160.         153 => 3.39631e+009,
  161.         154 => 445077038,
  162.         155 => 3.74285e+009,
  163.         156 => 3.57792e+009,
  164.         157 => 679411651,
  165.         158 => 2.89244e+009,
  166.         159 => 2.35401e+009,
  167.         160 => 1767581616,
  168.         161 => 3.1506e+009,
  169.         162 => 3.79163e+009,
  170.         163 => 3.10274e+009,
  171.         164 => 284835224,
  172.         165 => 4.24683e+009,
  173.         166 => 1258075500,
  174.         167 => 768725851,
  175.         168 => 2.58919e+009,
  176.         169 => 3.06972e+009,
  177.         170 => 3.53254e+009,
  178.         171 => 1274779536,
  179.         172 => 3.78942e+009,
  180.         173 => 2.7648e+009,
  181.         174 => 1660621633,
  182.         175 => 3.4711e+009,
  183.         176 => 4.0119e+009,
  184.         177 => 913787905,
  185.         178 => 3.49796e+009,
  186.         179 => 737222580,
  187.         180 => 2.51421e+009,
  188.         181 => 2.92871e+009,
  189.         182 => 3.93724e+009,
  190.         183 => 1804850592,
  191.         184 => 3.49902e+009,
  192.         185 => 2.94906e+009,
  193.         186 => 2.38632e+009,
  194.         187 => 2.39007e+009,
  195.         188 => 2.41532e+009,
  196.         189 => 4.06128e+009,
  197.         190 => 2.29066e+009,
  198.         191 => 2.41683e+009,
  199.         192 => 1336762016,
  200.         193 => 1754252060,
  201.         194 => 3.52007e+009,
  202.         195 => 3.01418e+009,
  203.         196 => 791618072,
  204.         197 => 3.18859e+009,
  205.         198 => 3.93355e+009,
  206.         199 => 2.33217e+009,
  207.         200 => 3.85252e+009,
  208.         201 => 3.04398e+009,
  209.         202 => 413987798,
  210.         203 => 3.46514e+009,
  211.         204 => 3.03093e+009,
  212.         205 => 4.24594e+009,
  213.         206 => 2093235073,
  214.         207 => 3.5346e+009,
  215.         208 => 375366246,
  216.         209 => 2.15728e+009,
  217.         210 => 2.47965e+009,
  218.         211 => 555357303,
  219.         212 => 3.87011e+009,
  220.         213 => 2008414854,
  221.         214 => 3.34419e+009,
  222.         215 => 4.22138e+009,
  223.         216 => 3.95613e+009,
  224.         217 => 2067696032,
  225.         218 => 3.59459e+009,
  226.         219 => 2.92123e+009,
  227.         220 => 2428461,
  228.         221 => 544322398,
  229.         222 => 577241275,
  230.         223 => 1471733935,
  231.         224 => 610547355,
  232.         225 => 4.02717e+009,
  233.         226 => 1432588573,
  234.         227 => 1507829418,
  235.         228 => 2025931657,
  236.         229 => 3.64658e+009,
  237.         230 => 545086370,
  238.         231 => 48609733,
  239.         232 => 2.20031e+009,
  240.         233 => 1653985193,
  241.         234 => 298326376,
  242.         235 => 1316178497,
  243.         236 => 3.00779e+009,
  244.         237 => 2064951626,
  245.         238 => 458293330,
  246.         239 => 2.58914e+009,
  247.         240 => 3.59133e+009,
  248.         241 => 3.16433e+009,
  249.         242 => 727753846,
  250.         243 => 2.17936e+009,
  251.         244 => 146436021,
  252.         245 => 1461446943,
  253.         246 => 4.06998e+009,
  254.         247 => 705550613,
  255.         248 => 3.05997e+009,
  256.         249 => 3.88772e+009,
  257.         250 => 4.2816e+009,
  258.         251 => 3.31385e+009,
  259.         252 => 1404054877,
  260.         253 => 2.84581e+009,
  261.         254 => 146425753,
  262.         255 => 1854211946
  263.     );
  264.     public $sbox1 = array
  265.     (
  266.         0 => 1266315497,
  267.         1 => 3.04842e+009,
  268.         2 => 3.68188e+009,
  269.         3 => 3.28998e+009,
  270.         4 => 2.90971e+009,
  271.         5 => 1235738493,
  272.         6 => 2.63287e+009,
  273.         7 => 2.41472e+009,
  274.         8 => 3.9706e+009,
  275.         9 => 1771706367,
  276.         10 => 1449415276,
  277.         11 => 3.26642e+009,
  278.         12 => 422970021,
  279.         13 => 1963543593,
  280.         14 => 2.69019e+009,
  281.         15 => 3.82679e+009,
  282.         16 => 1062508698,
  283.         17 => 1531092325,
  284.         18 => 1804592342,
  285.         19 => 2.58312e+009,
  286.         20 => 2.71493e+009,
  287.         21 => 4.02497e+009,
  288.         22 => 1294809318,
  289.         23 => 4.02898e+009,
  290.         24 => 1289560198,
  291.         25 => 2.22199e+009,
  292.         26 => 1669523910,
  293.         27 => 35572830,
  294.         28 => 157838143,
  295.         29 => 1052438473,
  296.         30 => 1016535060,
  297.         31 => 1802137761,
  298.         32 => 1753167236,
  299.         33 => 1386275462,
  300.         34 => 3.08048e+009,
  301.         35 => 2.85737e+009,
  302.         36 => 1040679964,
  303.         37 => 2145300060,
  304.         38 => 2.39057e+009,
  305.         39 => 1461121720,
  306.         40 => 2.95665e+009,
  307.         41 => 4.03178e+009,
  308.         42 => 4.02837e+009,
  309.         43 => 33600511,
  310.         44 => 2.92008e+009,
  311.         45 => 1018524850,
  312.         46 => 629373528,
  313.         47 => 3.69159e+009,
  314.         48 => 3.51595e+009,
  315.         49 => 2091462646,
  316.         50 => 2.48632e+009,
  317.         51 => 586499841,
  318.         52 => 988145025,
  319.         53 => 935516892,
  320.         54 => 3.36734e+009,
  321.         55 => 2.59967e+009,
  322.         56 => 2.83983e+009,
  323.         57 => 265290510,
  324.         58 => 3.97258e+009,
  325.         59 => 2.75914e+009,
  326.         60 => 3.79537e+009,
  327.         61 => 1005194799,
  328.         62 => 847297441,
  329.         63 => 406762289,
  330.         64 => 1314163512,
  331.         65 => 1332590856,
  332.         66 => 1866599683,
  333.         67 => 4.12785e+009,
  334.         68 => 750260880,
  335.         69 => 613907577,
  336.         70 => 1450815602,
  337.         71 => 3.16562e+009,
  338.         72 => 3.73466e+009,
  339.         73 => 3.65029e+009,
  340.         74 => 3.01228e+009,
  341.         75 => 3.70457e+009,
  342.         76 => 1427272223,
  343.         77 => 778793252,
  344.         78 => 1343938022,
  345.         79 => 2.67628e+009,
  346.         80 => 2052605720,
  347.         81 => 1946737175,
  348.         82 => 3.16458e+009,
  349.         83 => 3.91404e+009,
  350.         84 => 3.96748e+009,
  351.         85 => 3.68293e+009,
  352.         86 => 1661551462,
  353.         87 => 3.29494e+009,
  354.         88 => 4.0116e+009,
  355.         89 => 840292616,
  356.         90 => 3.71217e+009,
  357.         91 => 616741398,
  358.         92 => 312560963,
  359.         93 => 711312465,
  360.         94 => 1351876610,
  361.         95 => 322626781,
  362.         96 => 1910503582,
  363.         97 => 271666773,
  364.         98 => 2.17556e+009,
  365.         99 => 1594956187,
  366.         100 => 70604529,
  367.         101 => 3.61783e+009,
  368.         102 => 1007753275,
  369.         103 => 1495573769,
  370.         104 => 4.06952e+009,
  371.         105 => 2.54922e+009,
  372.         106 => 2.66304e+009,
  373.         107 => 504708206,
  374.         108 => 2.26304e+009,
  375.         109 => 3.94117e+009,
  376.         110 => 2.24909e+009,
  377.         111 => 1514023603,
  378.         112 => 1998579484,
  379.         113 => 1312622330,
  380.         114 => 694541497,
  381.         115 => 2.58206e+009,
  382.         116 => 2.15158e+009,
  383.         117 => 1382467621,
  384.         118 => 776784248,
  385.         119 => 2.61834e+009,
  386.         120 => 3.32327e+009,
  387.         121 => 2.4979e+009,
  388.         122 => 2.78477e+009,
  389.         123 => 503983604,
  390.         124 => 4.07629e+009,
  391.         125 => 907881277,
  392.         126 => 423175695,
  393.         127 => 432175456,
  394.         128 => 1378068232,
  395.         129 => 4.14522e+009,
  396.         130 => 3.95405e+009,
  397.         131 => 3.93866e+009,
  398.         132 => 3.82077e+009,
  399.         133 => 2.79313e+009,
  400.         134 => 2.9779e+009,
  401.         135 => 26017576,
  402.         136 => 3.27489e+009,
  403.         137 => 3.19477e+009,
  404.         138 => 1700274565,
  405.         139 => 1756076034,
  406.         140 => 4.00652e+009,
  407.         141 => 3.67733e+009,
  408.         142 => 720338349,
  409.         143 => 1533947780,
  410.         144 => 354530856,
  411.         145 => 688349552,
  412.         146 => 3.97392e+009,
  413.         147 => 1637815568,
  414.         148 => 332179504,
  415.         149 => 3.94905e+009,
  416.         150 => 53804574,
  417.         151 => 2.85235e+009,
  418.         152 => 3.04424e+009,
  419.         153 => 1282449977,
  420.         154 => 3.58394e+009,
  421.         155 => 3.41697e+009,
  422.         156 => 4.00638e+009,
  423.         157 => 1617046695,
  424.         158 => 2.62848e+009,
  425.         159 => 3.0023e+009,
  426.         160 => 1686838959,
  427.         161 => 431878346,
  428.         162 => 2.68668e+009,
  429.         163 => 1700445008,
  430.         164 => 1080580658,
  431.         165 => 1009431731,
  432.         166 => 832498133,
  433.         167 => 3.22344e+009,
  434.         168 => 2.60598e+009,
  435.         169 => 2.27119e+009,
  436.         170 => 2.51603e+009,
  437.         171 => 1648197032,
  438.         172 => 4.16439e+009,
  439.         173 => 2.54825e+009,
  440.         174 => 300782431,
  441.         175 => 375919233,
  442.         176 => 238389289,
  443.         177 => 3.35375e+009,
  444.         178 => 2.53119e+009,
  445.         179 => 2019080857,
  446.         180 => 1475708069,
  447.         181 => 455242339,
  448.         182 => 2.6091e+009,
  449.         183 => 448939670,
  450.         184 => 3.45106e+009,
  451.         185 => 1395535956,
  452.         186 => 2.41338e+009,
  453.         187 => 1841049896,
  454.         188 => 1491858159,
  455.         189 => 885456874,
  456.         190 => 4.2641e+009,
  457.         191 => 4.00112e+009,
  458.         192 => 1565136089,
  459.         193 => 3.89891e+009,
  460.         194 => 1108368660,
  461.         195 => 540939232,
  462.         196 => 1173283510,
  463.         197 => 2.74587e+009,
  464.         198 => 3.68131e+009,
  465.         199 => 4.20763e+009,
  466.         200 => 3.34305e+009,
  467.         201 => 4.01675e+009,
  468.         202 => 1699691293,
  469.         203 => 1103962373,
  470.         204 => 3.62588e+009,
  471.         205 => 2.25688e+009,
  472.         206 => 3.83014e+009,
  473.         207 => 1031889488,
  474.         208 => 3.47935e+009,
  475.         209 => 1535977030,
  476.         210 => 4.23681e+009,
  477.         211 => 3.25109e+009,
  478.         212 => 2132092099,
  479.         213 => 1774941330,
  480.         214 => 1199868427,
  481.         215 => 1452454533,
  482.         216 => 157007616,
  483.         217 => 2.90412e+009,
  484.         218 => 342012276,
  485.         219 => 595725824,
  486.         220 => 1480756522,
  487.         221 => 206960106,
  488.         222 => 497939518,
  489.         223 => 591360097,
  490.         224 => 863170706,
  491.         225 => 2.37525e+009,
  492.         226 => 3.59661e+009,
  493.         227 => 1814182875,
  494.         228 => 2094937945,
  495.         229 => 3.4214e+009,
  496.         230 => 1082520231,
  497.         231 => 3.46392e+009,
  498.         232 => 2.78551e+009,
  499.         233 => 435703966,
  500.         234 => 3.90803e+009,
  501.         235 => 1641649973,
  502.         236 => 2.84227e+009,
  503.         237 => 3.3059e+009,
  504.         238 => 1510255612,
  505.         239 => 2.14826e+009,
  506.         240 => 2.65529e+009,
  507.         241 => 3.27609e+009,
  508.         242 => 4.25862e+009,
  509.         243 => 236887753,
  510.         244 => 3.6818e+009,
  511.         245 => 274041037,
  512.         246 => 1734335097,
  513.         247 => 3.8152e+009,
  514.         248 => 3.31797e+009,
  515.         249 => 1899903192,
  516.         250 => 1026095262,
  517.         251 => 4.05052e+009,
  518.         252 => 356393447,
  519.         253 => 2.41069e+009,
  520.         254 => 3.87368e+009,
  521.         255 => 3.68284e+009
  522.     );
  523.     public $sbox2 = array
  524.     (
  525.         0 => 3.91311e+009,
  526.         1 => 2.4915e+009,
  527.         2 => 4.13219e+009,
  528.         3 => 2.48992e+009,
  529.         4 => 1091903735,
  530.         5 => 1979897079,
  531.         6 => 3.17013e+009,
  532.         7 => 3.56739e+009,
  533.         8 => 3.5573e+009,
  534.         9 => 857797738,
  535.         10 => 1136121015,
  536.         11 => 1342202287,
  537.         12 => 507115054,
  538.         13 => 2.53574e+009,
  539.         14 => 337727348,
  540.         15 => 3.21359e+009,
  541.         16 => 1301675037,
  542.         17 => 2.52848e+009,
  543.         18 => 1895095763,
  544.         19 => 1721773893,
  545.         20 => 3.21677e+009,
  546.         21 => 62756741,
  547.         22 => 2142006736,
  548.         23 => 835421444,
  549.         24 => 2.53199e+009,
  550.         25 => 1442658625,
  551.         26 => 3.65988e+009,
  552.         27 => 2.88214e+009,
  553.         28 => 676362277,
  554.         29 => 1392781812,
  555.         30 => 170690266,
  556.         31 => 3.92105e+009,
  557.         32 => 1759253602,
  558.         33 => 3.61185e+009,
  559.         34 => 1745797284,
  560.         35 => 664899054,
  561.         36 => 1329594018,
  562.         37 => 3.90121e+009,
  563.         38 => 3.04591e+009,
  564.         39 => 2062866102,
  565.         40 => 2.86563e+009,
  566.         41 => 3.54362e+009,
  567.         42 => 3.46401e+009,
  568.         43 => 1080764994,
  569.         44 => 553557557,
  570.         45 => 3.65662e+009,
  571.         46 => 3.99677e+009,
  572.         47 => 991055499,
  573.         48 => 499776247,
  574.         49 => 1265440854,
  575.         50 => 648242737,
  576.         51 => 3.94078e+009,
  577.         52 => 980351604,
  578.         53 => 3.71375e+009,
  579.         54 => 1749149687,
  580.         55 => 3.39687e+009,
  581.         56 => 4.2118e+009,
  582.         57 => 3.64057e+009,
  583.         58 => 1161844396,
  584.         59 => 3.12532e+009,
  585.         60 => 1431517754,
  586.         61 => 545492359,
  587.         62 => 4.26847e+009,
  588.         63 => 3.49953e+009,
  589.         64 => 1437099964,
  590.         65 => 2.70255e+009,
  591.         66 => 3.43364e+009,
  592.         67 => 2.58172e+009,
  593.         68 => 2.78779e+009,
  594.         69 => 1060185593,
  595.         70 => 1593081372,
  596.         71 => 2.41862e+009,
  597.         72 => 4.26095e+009,
  598.         73 => 69676912,
  599.         74 => 2.15974e+009,
  600.         75 => 86519011,
  601.         76 => 2.51246e+009,
  602.         77 => 3.83821e+009,
  603.         78 => 1220612927,
  604.         79 => 3.33968e+009,
  605.         80 => 133810670,
  606.         81 => 1090789135,
  607.         82 => 1078426020,
  608.         83 => 1569222167,
  609.         84 => 845107691,
  610.         85 => 3.58375e+009,
  611.         86 => 4.07246e+009,
  612.         87 => 1091646820,
  613.         88 => 628848692,
  614.         89 => 1613405280,
  615.         90 => 3.75763e+009,
  616.         91 => 526609435,
  617.         92 => 236106946,
  618.         93 => 48312990,
  619.         94 => 2.94272e+009,
  620.         95 => 3.40273e+009,
  621.         96 => 1797494240,
  622.         97 => 859738849,
  623.         98 => 992217954,
  624.         99 => 4.00548e+009,
  625.         100 => 2.24308e+009,
  626.         101 => 3.87095e+009,
  627.         102 => 3.73202e+009,
  628.         103 => 765654824,
  629.         104 => 3.49087e+009,
  630.         105 => 2.51184e+009,
  631.         106 => 1685915746,
  632.         107 => 3.88897e+009,
  633.         108 => 1414112111,
  634.         109 => 2.27313e+009,
  635.         110 => 3.28191e+009,
  636.         111 => 4.08096e+009,
  637.         112 => 172450625,
  638.         113 => 2.56999e+009,
  639.         114 => 980381355,
  640.         115 => 4.10996e+009,
  641.         116 => 2.81981e+009,
  642.         117 => 2.71659e+009,
  643.         118 => 2.56874e+009,
  644.         119 => 3.68145e+009,
  645.         120 => 3.32997e+009,
  646.         121 => 1835478071,
  647.         122 => 660984891,
  648.         123 => 3.70468e+009,
  649.         124 => 4.046e+009,
  650.         125 => 3.42262e+009,
  651.         126 => 3.04042e+009,
  652.         127 => 1762651403,
  653.         128 => 1719377915,
  654.         129 => 3.47049e+009,
  655.         130 => 2.69391e+009,
  656.         131 => 3.64206e+009,
  657.         132 => 3.1386e+009,
  658.         133 => 1364962596,
  659.         134 => 2073328063,
  660.         135 => 1983633131,
  661.         136 => 926494387,
  662.         137 => 3.42369e+009,
  663.         138 => 2.15003e+009,
  664.         139 => 4.09667e+009,
  665.         140 => 1749200295,
  666.         141 => 3.32885e+009,
  667.         142 => 309677260,
  668.         143 => 2016342300,
  669.         144 => 1779581495,
  670.         145 => 3.07982e+009,
  671.         146 => 111262694,
  672.         147 => 1274766160,
  673.         148 => 443224088,
  674.         149 => 298511866,
  675.         150 => 1025883608,
  676.         151 => 3.80645e+009,
  677.         152 => 1145181785,
  678.         153 => 168956806,
  679.         154 => 3.6415e+009,
  680.         155 => 3.58481e+009,
  681.         156 => 1689216846,
  682.         157 => 3.66626e+009,
  683.         158 => 3.20025e+009,
  684.         159 => 1692713982,
  685.         160 => 2.64638e+009,
  686.         161 => 4.04277e+009,
  687.         162 => 1618508792,
  688.         163 => 1610833997,
  689.         164 => 3.52305e+009,
  690.         165 => 4.13087e+009,
  691.         166 => 2001055236,
  692.         167 => 3.61071e+009,
  693.         168 => 2.20217e+009,
  694.         169 => 4.02854e+009,
  695.         170 => 2.9612e+009,
  696.         171 => 1006657119,
  697.         172 => 2006996926,
  698.         173 => 3.18614e+009,
  699.         174 => 1430667929,
  700.         175 => 3.21023e+009,
  701.         176 => 1314452623,
  702.         177 => 4.07463e+009,
  703.         178 => 4.1013e+009,
  704.         179 => 2.27395e+009,
  705.         180 => 1399257539,
  706.         181 => 3.36721e+009,
  707.         182 => 3.02763e+009,
  708.         183 => 1190975929,
  709.         184 => 2062231137,
  710.         185 => 2.33399e+009,
  711.         186 => 2.22154e+009,
  712.         187 => 2.43896e+009,
  713.         188 => 1181637006,
  714.         189 => 548689776,
  715.         190 => 2.36279e+009,
  716.         191 => 3.37241e+009,
  717.         192 => 3.10455e+009,
  718.         193 => 3.14586e+009,
  719.         194 => 296247880,
  720.         195 => 1970579870,
  721.         196 => 3.07856e+009,
  722.         197 => 3.76923e+009,
  723.         198 => 1714227617,
  724.         199 => 3.29163e+009,
  725.         200 => 3.89822e+009,
  726.         201 => 166772364,
  727.         202 => 1251581989,
  728.         203 => 493813264,
  729.         204 => 448347421,
  730.         205 => 195405023,
  731.         206 => 2.70998e+009,
  732.         207 => 677966185,
  733.         208 => 3.70304e+009,
  734.         209 => 1463355134,
  735.         210 => 2.716e+009,
  736.         211 => 1338867538,
  737.         212 => 1343315457,
  738.         213 => 2.80222e+009,
  739.         214 => 2.68453e+009,
  740.         215 => 233230375,
  741.         216 => 2.59998e+009,
  742.         217 => 2000651841,
  743.         218 => 3.27787e+009,
  744.         219 => 1638401717,
  745.         220 => 4.02807e+009,
  746.         221 => 3.23732e+009,
  747.         222 => 6314154,
  748.         223 => 819756386,
  749.         224 => 300326615,
  750.         225 => 590932579,
  751.         226 => 1405279636,
  752.         227 => 3.2675e+009,
  753.         228 => 3.1507e+009,
  754.         229 => 2.42829e+009,
  755.         230 => 3.95919e+009,
  756.         231 => 3.46195e+009,
  757.         232 => 1862657033,
  758.         233 => 1266418056,
  759.         234 => 963775037,
  760.         235 => 2089974820,
  761.         236 => 2.26305e+009,
  762.         237 => 1917689273,
  763.         238 => 448879540,
  764.         239 => 3.55039e+009,
  765.         240 => 3.98173e+009,
  766.         241 => 150775221,
  767.         242 => 3.62791e+009,
  768.         243 => 1303187396,
  769.         244 => 508620638,
  770.         245 => 2.97598e+009,
  771.         246 => 2.72663e+009,
  772.         247 => 1817252668,
  773.         248 => 1876281319,
  774.         249 => 1457606340,
  775.         250 => 908771278,
  776.         251 => 3.72079e+009,
  777.         252 => 3.61721e+009,
  778.         253 => 2.45599e+009,
  779.         254 => 1729034894,
  780.         255 => 1080033504
  781.     );
  782.     public $sbox3 = array
  783.     (
  784.         0 => 976866871,
  785.         1 => 3.55644e+009,
  786.         2 => 2.88165e+009,
  787.         3 => 1522871579,
  788.         4 => 1555064734,
  789.         5 => 1336096578,
  790.         6 => 3.54852e+009,
  791.         7 => 2.57927e+009,
  792.         8 => 3.5747e+009,
  793.         9 => 3.20546e+009,
  794.         10 => 3.59328e+009,
  795.         11 => 3.33872e+009,
  796.         12 => 3.07941e+009,
  797.         13 => 564236357,
  798.         14 => 2.9936e+009,
  799.         15 => 1781952180,
  800.         16 => 1464380207,
  801.         17 => 3.16384e+009,
  802.         18 => 3.3326e+009,
  803.         19 => 1699332808,
  804.         20 => 1393555694,
  805.         21 => 1183702653,
  806.         22 => 3.58109e+009,
  807.         23 => 1288719814,
  808.         24 => 691649499,
  809.         25 => 2.84756e+009,
  810.         26 => 2.89546e+009,
  811.         27 => 3.19389e+009,
  812.         28 => 2.71757e+009,
  813.         29 => 1781354906,
  814.         30 => 1676643554,
  815.         31 => 2.59253e+009,
  816.         32 => 3.23025e+009,
  817.         33 => 1126444790,
  818.         34 => 2.77021e+009,
  819.         35 => 2.63316e+009,
  820.         36 => 2.21042e+009,
  821.         37 => 2.61577e+009,
  822.         38 => 2.41416e+009,
  823.         39 => 3.12714e+009,
  824.         40 => 673620729,
  825.         41 => 2.80561e+009,
  826.         42 => 1269405062,
  827.         43 => 4.01535e+009,
  828.         44 => 3.34181e+009,
  829.         45 => 4.14941e+009,
  830.         46 => 1057255273,
  831.         47 => 2012875353,
  832.         48 => 2.16247e+009,
  833.         49 => 2.27649e+009,
  834.         50 => 2.60112e+009,
  835.         51 => 993977747,
  836.         52 => 3.91859e+009,
  837.         53 => 2.65426e+009,
  838.         54 => 753973209,
  839.         55 => 36408145,
  840.         56 => 2.53059e+009,
  841.         57 => 25011837,
  842.         58 => 3.52002e+009,
  843.         59 => 2088578344,
  844.         60 => 530523599,
  845.         61 => 2.91837e+009,
  846.         62 => 1524020338,
  847.         63 => 1518925132,
  848.         64 => 3.76083e+009,
  849.         65 => 3.75978e+009,
  850.         66 => 1202760957,
  851.         67 => 3.9859e+009,
  852.         68 => 3.90619e+009,
  853.         69 => 674977740,
  854.         70 => 4.17473e+009,
  855.         71 => 2031300136,
  856.         72 => 2019492241,
  857.         73 => 3.98389e+009,
  858.         74 => 4.15381e+009,
  859.         75 => 3.82228e+009,
  860.         76 => 352677332,
  861.         77 => 2.29772e+009,
  862.         78 => 60907813,
  863.         79 => 90501309,
  864.         80 => 3.287e+009,
  865.         81 => 1016092578,
  866.         82 => 2.53592e+009,
  867.         83 => 2.83915e+009,
  868.         84 => 457141659,
  869.         85 => 509813237,
  870.         86 => 4.12067e+009,
  871.         87 => 652014361,
  872.         88 => 1966332200,
  873.         89 => 2.9752e+009,
  874.         90 => 55981186,
  875.         91 => 2.32746e+009,
  876.         92 => 676427537,
  877.         93 => 3.25549e+009,
  878.         94 => 2.88229e+009,
  879.         95 => 3.43393e+009,
  880.         96 => 1307055953,
  881.         97 => 942726286,
  882.         98 => 933058658,
  883.         99 => 2.46841e+009,
  884.         100 => 3.9339e+009,
  885.         101 => 4.21518e+009,
  886.         102 => 1361170020,
  887.         103 => 2001714738,
  888.         104 => 2.83056e+009,
  889.         105 => 3.27426e+009,
  890.         106 => 1222529897,
  891.         107 => 1679025792,
  892.         108 => 2.72931e+009,
  893.         109 => 3.71495e+009,
  894.         110 => 1770335741,
  895.         111 => 151462246,
  896.         112 => 3.01323e+009,
  897.         113 => 1682292957,
  898.         114 => 1483529935,
  899.         115 => 471910574,
  900.         116 => 1539241949,
  901.         117 => 458788160,
  902.         118 => 3.43632e+009,
  903.         119 => 1807016891,
  904.         120 => 3.71841e+009,
  905.         121 => 978976581,
  906.         122 => 1043663428,
  907.         123 => 3.16597e+009,
  908.         124 => 1927990952,
  909.         125 => 4.20089e+009,
  910.         126 => 2.37228e+009,
  911.         127 => 3.20841e+009,
  912.         128 => 3.53343e+009,
  913.         129 => 1412390302,
  914.         130 => 2.93198e+009,
  915.         131 => 4.13233e+009,
  916.         132 => 1947078029,
  917.         133 => 3.88151e+009,
  918.         134 => 4.16823e+009,
  919.         135 => 2.94148e+009,
  920.         136 => 1077988104,
  921.         137 => 1320477388,
  922.         138 => 886195818,
  923.         139 => 18198404,
  924.         140 => 3.78641e+009,
  925.         141 => 2.50978e+009,
  926.         142 => 112762804,
  927.         143 => 3.46336e+009,
  928.         144 => 1866414978,
  929.         145 => 891333506,
  930.         146 => 18488651,
  931.         147 => 661792760,
  932.         148 => 1628790961,
  933.         149 => 3.88519e+009,
  934.         150 => 3.14117e+009,
  935.         151 => 876946877,
  936.         152 => 2.69328e+009,
  937.         153 => 1372485963,
  938.         154 => 791857591,
  939.         155 => 2.68643e+009,
  940.         156 => 3.75998e+009,
  941.         157 => 3.16721e+009,
  942.         158 => 3.47295e+009,
  943.         159 => 2.71638e+009,
  944.         160 => 445679433,
  945.         161 => 3.562e+009,
  946.         162 => 3.504e+009,
  947.         163 => 3.57426e+009,
  948.         164 => 54117162,
  949.         165 => 3.33141e+009,
  950.         166 => 2.38192e+009,
  951.         167 => 3.76971e+009,
  952.         168 => 4.15435e+009,
  953.         169 => 1140177722,
  954.         170 => 4.07405e+009,
  955.         171 => 668550556,
  956.         172 => 3.21435e+009,
  957.         173 => 367459370,
  958.         174 => 261225585,
  959.         175 => 2.61017e+009,
  960.         176 => 4.20935e+009,
  961.         177 => 3.46807e+009,
  962.         178 => 3.26582e+009,
  963.         179 => 314222801,
  964.         180 => 3.0661e+009,
  965.         181 => 3.80878e+009,
  966.         182 => 282218597,
  967.         183 => 3.40601e+009,
  968.         184 => 3.77359e+009,
  969.         185 => 379116347,
  970.         186 => 1285071038,
  971.         187 => 846784868,
  972.         188 => 2.66965e+009,
  973.         189 => 3.77196e+009,
  974.         190 => 3.55049e+009,
  975.         191 => 2.30595e+009,
  976.         192 => 453669953,
  977.         193 => 1268987020,
  978.         194 => 3.31759e+009,
  979.         195 => 3.2793e+009,
  980.         196 => 3.74483e+009,
  981.         197 => 2.61051e+009,
  982.         198 => 3.85951e+009,
  983.         199 => 266596637,
  984.         200 => 3.84702e+009,
  985.         201 => 517658769,
  986.         202 => 3.46256e+009,
  987.         203 => 3.44342e+009,
  988.         204 => 370717030,
  989.         205 => 4.24753e+009,
  990.         206 => 2.22402e+009,
  991.         207 => 4.14365e+009,
  992.         208 => 4.11277e+009,
  993.         209 => 2.78832e+009,
  994.         210 => 2.47727e+009,
  995.         211 => 1456262402,
  996.         212 => 2.90144e+009,
  997.         213 => 1517677493,
  998.         214 => 1846949527,
  999.         215 => 2.29549e+009,
  1000.         216 => 3.7344e+009,
  1001.         217 => 2.1764e+009,
  1002.         218 => 1280348187,
  1003.         219 => 1908823572,
  1004.         220 => 3.87179e+009,
  1005.         221 => 846861322,
  1006.         222 => 1172426758,
  1007.         223 => 3.28745e+009,
  1008.         224 => 3.38338e+009,
  1009.         225 => 1655181056,
  1010.         226 => 3.13981e+009,
  1011.         227 => 901632758,
  1012.         228 => 1897031941,
  1013.         229 => 2.98661e+009,
  1014.         230 => 3.06681e+009,
  1015.         231 => 3.4471e+009,
  1016.         232 => 1393639104,
  1017.         233 => 373351379,
  1018.         234 => 950779232,
  1019.         235 => 625454576,
  1020.         236 => 3.12424e+009,
  1021.         237 => 4.14861e+009,
  1022.         238 => 2007998917,
  1023.         239 => 544563296,
  1024.         240 => 2.24474e+009,
  1025.         241 => 2.3305e+009,
  1026.         242 => 2058025392,
  1027.         243 => 1291430526,
  1028.         244 => 424198748,
  1029.         245 => 50039436,
  1030.         246 => 29584100,
  1031.         247 => 3.60578e+009,
  1032.         248 => 2.42988e+009,
  1033.         249 => 2.7911e+009,
  1034.         250 => 1057563949,
  1035.         251 => 3.25536e+009,
  1036.         252 => 3.07537e+009,
  1037.         253 => 3.46396e+009,
  1038.         254 => 1469046755,
  1039.         255 => 985887462
  1040.     );
  1041.     public $parray = array
  1042.     (
  1043.         0 => 608135816,
  1044.         1 => 2.24205e+009,
  1045.         2 => 320440878,
  1046.         3 => 57701188,
  1047.         4 => 2.75207e+009,
  1048.         5 => 698298832,
  1049.         6 => 137296536,
  1050.         7 => 3.96456e+009,
  1051.         8 => 1160258022,
  1052.         9 => 953160567,
  1053.         10 => 3.1932e+009,
  1054.         11 => 887688300,
  1055.         12 => 3.23251e+009,
  1056.         13 => 3.38037e+009,
  1057.         14 => 1065670069,
  1058.         15 => 3.04133e+009,
  1059.         16 => 2.45097e+009,
  1060.         17 => 2.30647e+009
  1061.     );
  1062.     public $blocksize = 8;
  1063.  
  1064.     public function pcrypt_blowfish( $key )
  1065.     {
  1066.         $this->bctx = array(
  1067.             "p" => $this->parray,
  1068.             "sb" => array(
  1069.                 $this->sbox0,
  1070.                 $this->sbox1,
  1071.                 $this->sbox2,
  1072.                 $this->sbox3
  1073.             )
  1074.         );
  1075.         $this->_init( $key );
  1076.     }
  1077.  
  1078.     public function _blowfish_crypt( &$Xl, &$Xr )
  1079.     {
  1080.         $i = 0;
  1081.         while ( $i < 16 )
  1082.         {
  1083.             $Xl = $Xl ^ $this->bctx['p'][$i];
  1084.             $Xr = $this->_F( $Xl ) ^ $Xr;
  1085.             $tmp = $Xl;
  1086.             $Xl = $Xr;
  1087.             $Xr = $tmp;
  1088.             ++$i;
  1089.         }
  1090.         $tmp = $Xl;
  1091.         $Xl = $Xr;
  1092.         $Xr = $tmp;
  1093.         $Xr = $Xr ^ $this->bctx['p'][16];
  1094.         $Xl = $Xl ^ $this->bctx['p'][17];
  1095.     }
  1096.  
  1097.     public function _blowfish_decrypt( &$Xl, &$Xr )
  1098.     {
  1099.         $i = 17;
  1100.         while ( 2 <= $i )
  1101.         {
  1102.             $Xl = $Xl ^ $this->bctx['p'][$i];
  1103.             $Xr = $this->_F( $Xl ) ^ $Xr;
  1104.             $tmp = $Xl;
  1105.             $Xl = $Xr;
  1106.             $Xr = $tmp;
  1107.             --$i;
  1108.         }
  1109.         $tmp = $Xl;
  1110.         $Xl = $Xr;
  1111.         $Xr = $tmp;
  1112.         $Xr = $Xr ^ $this->bctx['p'][1];
  1113.         $Xl = $Xl ^ $this->bctx['p'][0];
  1114.     }
  1115.  
  1116.     public function _F( $x )
  1117.     {
  1118.         $d = $x & 255;
  1119.         $x = $x >> 8;
  1120.         $c = $x & 255;
  1121.         $x = $x >> 8;
  1122.         $b = $x & 255;
  1123.         $x = $x >> 8;
  1124.         $a = $x & 255;
  1125.         $y = $this->bctx['sb'][0][$a] + $this->bctx['sb'][1][$b];
  1126.         $y = ( $y ^ $this->bctx['sb'][2][$c] ) + $this->bctx['sb'][3][$d];
  1127.         return $y;
  1128.     }
  1129.  
  1130.     public function _init( $key )
  1131.     {
  1132.         $key = array_values( unpack( "C*", $key ) );
  1133.         $keyl = count( $key );
  1134.         $j = 0;
  1135.         $i = 0;
  1136.         while ( $i < 18 )
  1137.         {
  1138.             $data = 0;
  1139.             $k = 0;
  1140.             while ( $k < 4 )
  1141.             {
  1142.                 $data = $data << 8 | $key[$j];
  1143.                 ++$j;
  1144.                 if ( $keyl <= $j )
  1145.                 {
  1146.                     $j = 0;
  1147.                 }
  1148.                 ++$k;
  1149.             }
  1150.             $this->bctx['p'][$i] = $this->parray[$i] ^ $data;
  1151.             ++$i;
  1152.         }
  1153.         $datal = 0;
  1154.         $datar = 0;
  1155.         $i = 0;
  1156.         while ( $i < 18 )
  1157.         {
  1158.             $this->_blowfish_crypt( $datal, $datar );
  1159.             $this->bctx['p'][$i] = $datal;
  1160.             $this->bctx['p'][$i + 1] = $datar;
  1161.             $i += 2;
  1162.         }
  1163.         $i = 0;
  1164.         while ( $i < 4 )
  1165.         {
  1166.             $j = 0;
  1167.             while ( $j < 256 )
  1168.             {
  1169.                 $this->_blowfish_crypt( $datal, $datar );
  1170.                 $this->bctx['sb'][$i][$j] = $datal;
  1171.                 $this->bctx['sb'][$i][$j + 1] = $datar;
  1172.                 $j += 2;
  1173.             }
  1174.             ++$i;
  1175.         }
  1176.     }
  1177.  
  1178.     public function _encrypt( $block )
  1179.     {
  1180.         $data = array_values( unpack( "N*", $block ) );
  1181.         $this->_blowfish_crypt( $data[0], $data[1] );
  1182.         return pack( "N*", $data[0], $data[1] );
  1183.     }
  1184.  
  1185.     public function _decrypt( $block )
  1186.     {
  1187.         $data = array_values( unpack( "N*", $block ) );
  1188.         $this->_blowfish_decrypt( $data[0], $data[1] );
  1189.         return pack( "N*", $data[0], $data[1] );
  1190.     }
  1191.  
  1192. }
  1193.  
  1194. class pcrypt
  1195. {
  1196.  
  1197.     public $blockmode = MODE_ECB;
  1198.     public $key = null;
  1199.     public $iv = "z4c8e7gh";
  1200.  
  1201.     public function pcrypt( $blockmode = MODE_ECB, $cipher = "BLOWFISH", $key = null )
  1202.     {
  1203.         if ( !class_exists( "pcrypt_".$cipher ) )
  1204.         {
  1205.             $this->error( "Class pcrypt_".$cipher." doesn't exists" );
  1206.         }
  1207.         $class = "pcrypt_".$cipher;
  1208.         $this->cipher = new $class( $key );
  1209.         $this->blockmode = $blockmode;
  1210.         $this->key = $key;
  1211.     }
  1212.  
  1213.     public function str_uncomp( $str )
  1214.     {
  1215.         $str = base64_decode( $str );
  1216.         $str = gzuncompress( $str );
  1217.         return base64_decode( $str );
  1218.     }
  1219.  
  1220.     public function str_comp( $str )
  1221.     {
  1222.         $str = trim( base64_encode( $str ) );
  1223.         $str = gzcompress( $str, 9 );
  1224.         return base64_encode( $str );
  1225.     }
  1226.  
  1227.     public function encrypt( $plain )
  1228.     {
  1229.         if ( empty( $plain ) )
  1230.         {
  1231.             $this->error( "Empty Plain Text" );
  1232.         }
  1233.         switch ( $this->blockmode )
  1234.         {
  1235.         case MODE_ECB :
  1236.             $cipher = $this->_ecb_encrypt( $plain );
  1237.             break;
  1238.             switch ( $this->blockmode )
  1239.             {
  1240.             case MODE_CBC :
  1241.                 $cipher = $this->_cbc_encrypt( $plain );
  1242.                 break;
  1243.             default :
  1244.             default :
  1245.                 $this->error( "Invalid mode ".$this->blockmode );
  1246.             }
  1247.         }
  1248.         return $this->str_comp( $cipher );
  1249.     }
  1250.  
  1251.     public function decrypt( $cipher )
  1252.     {
  1253.         if ( empty( $cipher ) )
  1254.         {
  1255.             $this->error( "Invalid Cipher Text" );
  1256.         }
  1257.         $cipher = $this->str_uncomp( $cipher );
  1258.         switch ( $this->blockmode )
  1259.         {
  1260.         case MODE_ECB :
  1261.             $plain = $this->_ecb_decrypt( $cipher );
  1262.             break;
  1263.             switch ( $this->blockmode )
  1264.             {
  1265.             case MODE_CBC :
  1266.                 $plain = $this->_cbc_decrypt( $cipher );
  1267.                 break;
  1268.             default :
  1269.             default :
  1270.                 $this->error( "Invalid mode ".$this->blockmode );
  1271.             }
  1272.         }
  1273.         return $plain;
  1274.     }
  1275.  
  1276.     public function _ecb_encrypt( $plain )
  1277.     {
  1278.         $blocksize = $this->cipher->blocksize;
  1279.         $plainsize = strlen( $plain );
  1280.         $cipher = "";
  1281.         $i = 0;
  1282.         while ( $i < $plainsize )
  1283.         {
  1284.             $block = substr( $plain, $i, $blocksize );
  1285.             if ( strlen( $block ) < $blocksize )
  1286.             {
  1287.                 $block = str_pad( $block, $blocksize, "\x00", STR_PAD_LEFT );
  1288.             }
  1289.             $cipher .= $this->cipher->_encrypt( $block );
  1290.             $i = $i + $blocksize;
  1291.         }
  1292.         return $cipher;
  1293.     }
  1294.  
  1295.     public function _ecb_decrypt( $cipher )
  1296.     {
  1297.         $blocksize = $this->cipher->blocksize;
  1298.         $ciphersize = strlen( $cipher );
  1299.         $plain = "";
  1300.         $i = 0;
  1301.         while ( $i < $ciphersize )
  1302.         {
  1303.             $block = substr( $cipher, $i, $blocksize );
  1304.             $block = $this->cipher->_decrypt( $block );
  1305.             while ( substr( $block, 0, 1 ) == "\x00" )
  1306.             {
  1307.                 $block = substr( $block, 1 );
  1308.             }
  1309.             $plain .= $block;
  1310.             $i = $i + $blocksize;
  1311.         }
  1312.         return $plain;
  1313.     }
  1314.  
  1315.     public function _cbc_encrypt( $plain )
  1316.     {
  1317.         $blocksize = $this->cipher->blocksize;
  1318.         $plainsize = strlen( $plain );
  1319.         $cipher = "";
  1320.         $lcipher = $this->iv;
  1321.         $i = 0;
  1322.         while ( $i < $plainsize )
  1323.         {
  1324.             $block = substr( $plain, $i, $blocksize );
  1325.             if ( strlen( $block ) < $blocksize )
  1326.             {
  1327.                 $block = str_pad( $block, $blocksize, "\x00", STR_PAD_LEFT );
  1328.             }
  1329.             $lcipher = $this->cipher->_encrypt( $block ^ $lcipher );
  1330.             $cipher .= $lcipher;
  1331.             $i = $i + $blocksize;
  1332.         }
  1333.         return $cipher;
  1334.     }
  1335.  
  1336.     public function _cbc_decrypt( $cipher )
  1337.     {
  1338.         $blocksize = $this->cipher->blocksize;
  1339.         $ciphersize = strlen( $cipher );
  1340.         $plain = "";
  1341.         $lcipher = $this->iv;
  1342.         $i = 0;
  1343.         while ( $i < $ciphersize )
  1344.         {
  1345.             $block = substr( $cipher, $i, $blocksize );
  1346.             $dblock = $lcipher ^ $this->cipher->_decrypt( $block );
  1347.             $lcipher = $block;
  1348.             while ( substr( $dblock, 0, 1 ) == "\x00" )
  1349.             {
  1350.                 $dblock = substr( $dblock, 1 );
  1351.             }
  1352.             $plain .= $dblock;
  1353.             $i = $i + $blocksize;
  1354.         }
  1355.         return $plain;
  1356.     }
  1357.  
  1358.     public function error( $message )
  1359.     {
  1360.         echo "Error: ".$message."<br>";
  1361.         return 1;
  1362.     }
  1363.  
  1364. }
  1365.  
  1366. define( "MODE_ECB", 0 );
  1367. define( "MODE_CBC", 1 );
  1368. ?>
Add Comment
Please, Sign In to add comment