Я работаю над домашней работой DES Encrypt / Decrypt.Требуется превратить 64-битные данные (в моей работе это строка) в двоичные.После некоторых видов вычислений верните двоичный код в строку.Вот мой код:
/**
* turn string into binary
* @param type $str
* @return type
*/
function strToBin($str){
//1.split characters
$arr = preg_split('/(?<!^)(?!$)/u', $str);
//2.unpack characters
foreach($arr as &$v){
$temp = unpack('H*', $v);
$v = base_convert($temp[1], 16, 2);
unset($temp);
}
return join(' ',$arr);
}
/**
* binary into string
* @param type $str
* @return type
*/
function binToStr($str){
$arr = explode(' ', $str);
foreach($arr as &$v){
$v = pack("H".strlen(base_convert($v, 2, 16)),
base_convert($v, 2, 16));
}
return join('', $arr);
}
, но когда я проверял его, PHP_EOL в .txt файле был ошибочным.
тестовая часть кода:
while(!feof($inputFile)){
$stringOriginal = fread($inputFile,"8");
//test
$stringOperated = binToStr(strToBin($stringOriginal));
fwrite($ouputFile,$stringOperated,"8");
}
Вот результат: введите описание изображения здесь
Как я могу иметь дело с PHP_EOL?Большое спасибо!