<?php @error_reporting(0);@ini_set('display_errors','1');
$hash='epDsQWrwgpvdqiFqZVnz5fJjHtX6MuDnOzqV32vFLBGWk7RpsWWxkNbBghryTsV1';
$blob='0nGazC+1efscZpLvnytV+UBuJ02uxvMDpMB4mAi9tUz7OjjqdwY/Ag==';
$blob2='vevKd7Coqe8AeHy7C325vqKnxr/BXKO4O92ojBSjWxhvbNStlc/e8A==';
function trydec($name,$fn){ global $blob,$blob2; foreach(['srv1'=>$blob,'srv2'=>$blob2] as $k=>$b){ $r=$fn($b); $r2=trim((string)$r,"\0"); echo "$name $k: ".(strlen($r2)>0&&$r2!==false? "[$r2]":"FAIL")."\n"; }}
// 1) Illuminate Encrypter with md5 key
$key=md5($hash);
trydec("ill_md5", function($b) use($key){ $e=new \Illuminate\Encryption\Encrypter($key,'AES-256-CBC'); return $e->decryptString($b);});
trydec("ill_sha", function($b) use($hash){ $e=new \Illuminate\Encryption\Encrypter(hash('sha256',$hash),'AES-256-CBC'); return $e->decryptString($b);});
// 2) openssl aes-128-cbc raw with md5 key + zero iv, blob as ciphertext
trydec("raw128", function($b) use($key){ $d=base64_decode($b); return openssl_decrypt($d,'aes-128-cbc',$key,OPENSSL_RAW_DATA,str_repeat("\0",16));});
// 3) openssl aes-256-cbc with md5 key (32 pkcs)
trydec("raw256", function($b) use($key){ $d=base64_decode($b); return openssl_decrypt($d,'aes-256-cbc',$key,OPENSSL_RAW_DATA,str_repeat("\0",16));});
// 4) mcrypt style: iv = first 16 bytes, cipher rest
trydec("mcryptsplit", function($b) use($key){ $d=base64_decode($b); $iv=substr($d,0,16); $c=substr($d,16); return openssl_decrypt($c,'aes-128-cbc',$key,OPENSSL_RAW_DATA,$iv);});
echo "DONE";
