<?php
function evalCrossTotal($strMD5)
{
$intTotal = 0;
$arrMD5Chars = str_split($strMD5, 1);
foreach ($arrMD5Chars as $value)
{
$intTotal += '0x0'.$value;
}
return $intTotal;
}
function encryptString($strString, $strPassword)
{
// $strString is the content of the entire file with serials
$strPasswordMD5 = md5($strPassword);
$intMD5Total = evalCrossTotal($strPasswordMD5);
$arrEncryptedValues = array();
$intStrlen = strlen($strString);
for ($i=0; $i<$intStrlen; $i++)
{
$arrEncryptedValues[] = ord(substr($strString, $i, 1))
+ ('0x0' . substr($strPasswordMD5, $i%32, 1))
- $intMD5Total;
$intMD5Total = evalCrossTotal(substr(md5(substr($strString,0,$i+1)), 0, 16)
. substr(md5($intMD5Total), 0, 16));
}
return implode(' ' , $arrEncryptedValues);
}
?>
- Output for 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.38, 7.0.0 - 7.0.33, 7.1.0 - 7.1.25, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
preferences:
289.71 ms | 404 KiB | 339 Q