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> |