I don't know if anyone would ever have any use for this but I figured I'd share it... here's a PHP script that loads, parses and returns an array of keys in hfs.ini, including separating every account and decoding the usernames and notes.
<?php
function loadHFS($file) {
$output = array();
$hfsini = preg_split("/\r\n|\n|\r/", file_get_contents("hfs.ini"));
foreach ($hfsini as $string) { if ($string) {
$split = explode("=",$string,2);
if (isset($split[0]) && isset($split[1])) { $output[$split[0]] = $split[1]; }
}}
$accounts = explode(";",$output['accounts']); $output['accounts'] = array();
foreach ($accounts as $string) { if ($string) {
$string = explode("|",$string); $account = array();
foreach ($string as $info) {
$split = explode(':',$info,2);
if (isset($split[0]) && isset($split[1])) { $account[$split[0]] = $split[1]; }
}
if (!empty($account['login'])) { $account['login'] = explode(":",base64_decode($account['login'])); }
if (!empty($account['notes'])) {
$notes = preg_split("/\r\n|\n|\r/",zlib_decode(base64_decode($account['notes']))); $data = array();
foreach ($notes as $note) {
$split = explode("=",$note);
$data[$split[0]] = $split[1];
}
$account['notes'] = $data;
}
array_push($output['accounts'],$account);
}}
return $output;
}
print_r( loadHFS("hfs.ini") );
?>