$("#ray_6302").html("\n
1<\/a>
2<\/a>
3<\/a>
4<\/a>
5<\/a>
6<\/a>
7<\/a>
8<\/a>
9<\/a>
10<\/a><\/strong>
11<\/a>
12<\/a>
13<\/a>
14<\/a>
15<\/a>
16<\/a>
17<\/a>
18<\/a>
19<\/a>
20<\/a><\/strong>
21<\/a>
22<\/a>
23<\/a>
24<\/a>
25<\/a>
26<\/a>
27<\/a>
28<\/a>
29<\/a>
30<\/a><\/strong>
31<\/a>
32<\/a>
33<\/a>
34<\/a>
35<\/a>
36<\/a>
37<\/a>
38<\/a>
39<\/a>
40<\/a><\/strong>
41<\/a>
42<\/a>
43<\/a>
44<\/a>
45<\/a>
46<\/a>
47<\/a>
48<\/a>
49<\/a>
50<\/a><\/strong>
51<\/a>
52<\/a>
53<\/a>
54<\/a>
55<\/a>
56<\/a>
57<\/a>
58<\/a>
59<\/a>
60<\/a><\/strong>
61<\/a>
62<\/a>
63<\/a>
64<\/a>
65<\/a>
66<\/a>
67<\/a>
68<\/a>
69<\/a><\/pre><\/td>\n  
<?php<\/span>
<\/span>function<\/span> <\/span>getkeyiv<\/span>(<\/span>$key_size<\/span>,<\/span> <\/span>$iv_size<\/span>,<\/span> <\/span>$key<\/span>,<\/span> <\/span>$iv<\/span>=<\/span>\'<\/span>\'<\/span><\/span>)<\/span> <\/span>{<\/span>
  <\/span>if<\/span> <\/span>(<\/span>$iv<\/span> <\/span>==<\/span> <\/span>\'<\/span>\'<\/span><\/span>)<\/span> <\/span>{<\/span>
    <\/span>$iv<\/span> <\/span>=<\/span> <\/span>\'<\/span>OpenSSL for Ruby rulez!<\/span>\'<\/span><\/span>;<\/span>
  <\/span>}<\/span>

  <\/span>$iv<\/span> <\/span>=<\/span> <\/span>substr<\/span>(<\/span>$iv<\/span>,<\/span>0<\/span>,<\/span>$iv_size<\/span>)<\/span>;<\/span>
  
  <\/span>$gen<\/span> <\/span>=<\/span> <\/span>\'<\/span>\'<\/span><\/span>;<\/span>
  <\/span>do<\/span>  <\/span>{<\/span>
    <\/span>$gen<\/span> <\/span>=<\/span> <\/span>$gen<\/span>.<\/span>md5<\/span>(<\/span>$gen<\/span>.<\/span>$key<\/span>.<\/span>$iv<\/span>,<\/span>true<\/span>)<\/span>;<\/span>
  <\/span>}<\/span> <\/span>while<\/span> <\/span>(<\/span>strlen<\/span>(<\/span>$gen<\/span>)<\/span><<\/span>(<\/span>$iv_size<\/span>+<\/span>$key_size<\/span>)<\/span>)<\/span>;<\/span>

  <\/span>$o<\/span>[<\/span>0<\/span>]<\/span> <\/span>=<\/span> <\/span>substr<\/span>(<\/span>$gen<\/span>,<\/span>0<\/span>,<\/span>$key_size<\/span>)<\/span>;<\/span>
  <\/span>$o<\/span>[<\/span>1<\/span>]<\/span> <\/span>=<\/span> <\/span>$iv<\/span>;<\/span> <\/span>//this is not the generated IV,<\/span>
                     <\/span>//just the original "salt" cut to the required size<\/span>
  <\/span>return<\/span> <\/span>$o<\/span>;<\/span>
<\/span>}<\/span>

<\/span>function<\/span> <\/span>trimpadding<\/span>(<\/span>$str<\/span>)<\/span> <\/span>{<\/span>
   <\/span>if<\/span> <\/span>(<\/span>ord<\/span>(<\/span>$str<\/span>[<\/span>strlen<\/span>(<\/span>$str<\/span>)<\/span>-<\/span>1<\/span>]<\/span>)<\/span> <\/span><<\/span> <\/span>9<\/span>)<\/span> <\/span>{<\/span>
    <\/span>return<\/span> <\/span>rtrim<\/span>(<\/span>$str<\/span>,<\/span>$str<\/span>[<\/span>strlen<\/span>(<\/span>$str<\/span>)<\/span>-<\/span>1<\/span>]<\/span>)<\/span>;<\/span>
  <\/span>}<\/span> <\/span>else<\/span> <\/span>{<\/span>
    <\/span>return<\/span> <\/span>$str<\/span>;<\/span>    
  <\/span>}<\/span>
<\/span>}<\/span> 

<\/span>function<\/span> <\/span>encipher<\/span>(<\/span>$data_to_encode<\/span>)<\/span>{<\/span>
  <\/span>$key<\/span> <\/span>=<\/span> <\/span>\'<\/span>secretkey<\/span>\'<\/span><\/span>;<\/span>
    
    <\/span>$td<\/span> <\/span>=<\/span> <\/span>mcrypt_module_open<\/span>(<\/span>MCRYPT_TRIPLEDES<\/span>,<\/span> <\/span>\'<\/span>\'<\/span><\/span>,<\/span>  <\/span>MCRYPT_MODE_CBC<\/span>,<\/span> <\/span>\'<\/span>\'<\/span><\/span>)<\/span>;<\/span>

  <\/span>$iv_size<\/span> <\/span>=<\/span> <\/span>mcrypt_enc_get_iv_size<\/span>(<\/span>$td<\/span>)<\/span>;<\/span>
  <\/span>$key_size<\/span> <\/span>=<\/span> <\/span>mcrypt_enc_get_key_size<\/span>(<\/span>$td<\/span>)<\/span>;<\/span>

  <\/span>$genkey<\/span> <\/span>=<\/span> <\/span>getkeyiv<\/span>(<\/span>$key_size<\/span>,<\/span> <\/span>$iv_size<\/span>,<\/span>$key<\/span>)<\/span>;<\/span>

  <\/span>if<\/span> <\/span>(<\/span>mcrypt_generic_init<\/span>(<\/span>$td<\/span>,<\/span>$genkey<\/span>[<\/span>0<\/span>]<\/span>,<\/span>$genkey<\/span>[<\/span>1<\/span>]<\/span>)<\/span> <\/span>!=<\/span> <\/span>-<\/span>1<\/span>)<\/span> <\/span>{<\/span>
          <\/span>$encoded_data<\/span> <\/span>=<\/span> <\/span>mcrypt_generic<\/span>(<\/span>$td<\/span>,<\/span> <\/span>$data_to_encode<\/span>)<\/span>;<\/span>
  <\/span>}<\/span>

  <\/span>mcrypt_generic_deinit<\/span>(<\/span>$td<\/span>)<\/span>;<\/span>
  <\/span>mcrypt_module_close<\/span>(<\/span>$td<\/span>)<\/span>;<\/span>

    <\/span>return<\/span> <\/span>base64_encode<\/span>(<\/span>$encoded_data<\/span>)<\/span>;<\/span>
<\/span>}<\/span>

<\/span>function<\/span> <\/span>decipher<\/span>(<\/span>$encoded<\/span>)<\/span> <\/span>{<\/span>
  <\/span>$key<\/span> <\/span>=<\/span> <\/span>\'<\/span>secretkey<\/span>\'<\/span><\/span>;<\/span>
  <\/span>$decrypted<\/span>=<\/span>\'<\/span>\'<\/span><\/span>;<\/span>

  <\/span>$enc<\/span> <\/span>=<\/span> <\/span>base64_decode<\/span>(<\/span>$encoded<\/span>)<\/span>;<\/span>
  <\/span>$td<\/span> <\/span>=<\/span> <\/span>mcrypt_module_open<\/span>(<\/span>MCRYPT_TRIPLEDES<\/span>,<\/span> <\/span>\'<\/span>\'<\/span><\/span>,<\/span>  <\/span>MCRYPT_MODE_CBC<\/span>,<\/span> <\/span>\'<\/span>\'<\/span><\/span>)<\/span>;<\/span>

  <\/span>$iv_size<\/span> <\/span>=<\/span> <\/span>mcrypt_enc_get_iv_size<\/span>(<\/span>$td<\/span>)<\/span>;<\/span>
  <\/span>$key_size<\/span> <\/span>=<\/span> <\/span>mcrypt_enc_get_key_size<\/span>(<\/span>$td<\/span>)<\/span>;<\/span>

  <\/span>$genkey<\/span> <\/span>=<\/span> <\/span>getkeyiv<\/span>(<\/span>$key_size<\/span>,<\/span> <\/span>$iv_size<\/span>,<\/span>$key<\/span>)<\/span>;<\/span>

  <\/span>if<\/span> <\/span>(<\/span>mcrypt_generic_init<\/span>(<\/span>$td<\/span>,<\/span>$genkey<\/span>[<\/span>0<\/span>]<\/span>,<\/span>$genkey<\/span>[<\/span>1<\/span>]<\/span>)<\/span> <\/span>!=<\/span> <\/span>-<\/span>1<\/span>)<\/span> <\/span>{<\/span>
          <\/span>$decrypted<\/span> <\/span>=<\/span> <\/span>mdecrypt_generic<\/span>(<\/span>$td<\/span>,<\/span> <\/span>$enc<\/span>)<\/span>;<\/span>
  <\/span>}<\/span>

  <\/span>mcrypt_generic_deinit<\/span>(<\/span>$td<\/span>)<\/span>;<\/span>
  <\/span>mcrypt_module_close<\/span>(<\/span>$td<\/span>)<\/span>;<\/span>

  <\/span>return<\/span> <\/span>trimpadding<\/span>(<\/span>$decrypted<\/span>)<\/span>;<\/span>
<\/span>}<\/span>
<\/span>?><\/span><\/pre><\/td>\n<\/tr><\/table>\n\n");