DigitalProductId解密算法php版
<?php
// 使用数组字面量
$digits = ['B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'M', 'P', 'Q', 'R','T', 'V', 'W', 'X', 'Y', '2', '3', '4', '6', '7', '8', '9'];
//foreach ($digits as $digit) {
// echo $digit."<br>";
//}$hexPid=array(0xc2,0x49,0x4b,0xcc,0x60,0x34,0x09,0xcd,0x96,0xf7,0xec,0x94,0x0e,0x97,0x02);$decodedChars= array_fill(0, 29, "a"); // 创建一个包含三个 "fruit" 的数组//print_r($decodedChars);
//print_r($hexPid[0]);
// echo "<br>";
//print_r($hexPid);
$decodeLength = 29;
$decodeStringLength = 15;for ( $i = $decodeLength - 1;$i >= 0; $i--){// Every sixth char is a separator.if (($i + 1) % 6 == 0){$decodedChars[$i] = '-';}else{// Do the actual decoding.$digitMapIndex = 0;for ( $j = $decodeStringLength - 1; $j >= 0; $j--){$byteValue = ($digitMapIndex << 8) | $hexPid[$j];//echo $byteValue."<br>"; $hexPid[$j] = ($byteValue / 24);$digitMapIndex = $byteValue % 24;//echo "digitMapIndex=".$digitMapIndex."<br>"; }$decodedChars[$i] = $digits[$digitMapIndex];}}for ( $i=0;$i <= $decodeLength - 1; $i++){echo $decodedChars[$i];}//print_r($decodedChars);?>
运行结果:xp sp3英文版的一个密钥
QC986-27D34-6M3TY-JJXP9-TBGMD
$hexPid=array(0xc2,0x49,0x4b,0xcc,0x60,0x34,0x09,0xcd,0x96,0xf7,0xec,0x94,0x0e,0x97,0x02);
修改为你的注册表中的DigitalProductId的偏移0x34到0x43的15个字节,导出到pid.reg,
然后拷贝到记事本,
c2,49,4b,cc,60,34,09,cd,96,f7,ec,94,0e,97,02
添加上0x,构造一个$hexpid数组。
$hexPid=array(0xc2,0x49,0x4b,0xcc,0x60,0x34,0x09,0xcd,0x96,0xf7,0xec,0x94,0x0e,0x97,0x02);
注册表位置:
\\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion 中的DigitalProductId 值。
可以在下面的网址在线运行:
PHP 在线工具 | 菜鸟工具
在线运行PHP
运行截图: