DigitalProductId解密算法php調試版piddebug.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= ['B', 'C', 'D', 'F', 'G', 'H', 'J', 'K', 'M', 'P', 'Q', 'R',
//        'T', 'V', 'W', 'X', 'Y', '2', '3', '4', '6', '7', '8', '9', '6', '7', '8', '9', '9'];
$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] = '-';echo "<br>"."<br>"."\$i=".$i."<br>"; echo "\$ecodedChars[".$i."]=".$decodedChars[$i]."<br>";}else{// Do the actual decoding.$digitMapIndex = 0;echo "<br>"."<br>"."\$i=".$i."<br>";echo "<br>"."\$hexPid= ";for ( $k=0;$k <= $decodeStringLength - 1; $k++){echo "[".$k."]=".str_pad(strtoupper(dechex($hexPid[$k])), 2, '0', STR_PAD_LEFT)." ";//print_r($hexPid[$k]);}//echo "\$hexPid=";//print_r($hexPid);echo "<br>";for ( $j = $decodeStringLength - 1; $j >= 0; $j--){$byteValue = ($digitMapIndex << 8) | $hexPid[$j];echo "<br>"."--------"."\$j=".$j."<br>"; echo  "\$byteValue="."0x".$digitMapIndex.str_pad(strtoupper(dechex($hexPid[$j])),2, '0', STR_PAD_LEFT)."=".$byteValue."<br>";$hexPid[$j] = floor($byteValue / 24);$digitMapIndex = $byteValue % 24;echo $byteValue."=24*".$hexPid[$j]."+".$digitMapIndex."<br>";echo "\$hexPid[".$j."]=".$hexPid[$j]."=0x".str_pad(strtoupper(dechex($hexPid[$j])),2, '0', STR_PAD_LEFT)."<br>";echo "\$digitMapIndex=".$digitMapIndex."<br>";   //echo "digitMapIndex=".$digitMapIndex."<br>";   }$decodedChars[$i] = $digits[$digitMapIndex];echo "\$ecodedChars[".$i."]=".$decodedChars[$i]."<br>";}}echo "<br>"."<br>";for ( $i=0;$i <= $decodeLength - 1; $i++){echo $decodedChars[$i];}//print_r($decodedChars);?>

$i=28

$hexPid= [0]=C2 [1]=49 [2]=4B [3]=CC [4]=60 [5]=34 [6]=09 [7]=CD [8]=96 [9]=F7 [10]=EC [11]=94 [12]=0E [13]=97 [14]=02

--------$j=14
$byteValue=0x002=2
2=24*0+2
$hexPid[14]=0=0x00
$digitMapIndex=2

--------$j=13
$byteValue=0x297=663
663=24*27+15
$hexPid[13]=27=0x1B
$digitMapIndex=15

--------$j=12
$byteValue=0x150E=3854
3854=24*160+14
$hexPid[12]=160=0xA0
$digitMapIndex=14

--------$j=11
$byteValue=0x1494=3732
3732=24*155+12
$hexPid[11]=155=0x9B
$digitMapIndex=12

--------$j=10
$byteValue=0x12EC=3308
3308=24*137+20
$hexPid[10]=137=0x89
$digitMapIndex=20

--------$j=9
$byteValue=0x20F7=5367
5367=24*223+15
$hexPid[9]=223=0xDF
$digitMapIndex=15

--------$j=8
$byteValue=0x1596=3990
3990=24*166+6
$hexPid[8]=166=0xA6
$digitMapIndex=6

--------$j=7
$byteValue=0x6CD=1741
1741=24*72+13
$hexPid[7]=72=0x48
$digitMapIndex=13

--------$j=6
$byteValue=0x1309=3337
3337=24*139+1
$hexPid[6]=139=0x8B
$digitMapIndex=1

--------$j=5
$byteValue=0x134=308
308=24*12+20
$hexPid[5]=12=0x0C
$digitMapIndex=20

--------$j=4
$byteValue=0x2060=5216
5216=24*217+8
$hexPid[4]=217=0xD9
$digitMapIndex=8

--------$j=3
$byteValue=0x8CC=2252
2252=24*93+20
$hexPid[3]=93=0x5D
$digitMapIndex=20

--------$j=2
$byteValue=0x204B=5195
5195=24*216+11
$hexPid[2]=216=0xD8
$digitMapIndex=11

--------$j=1
$byteValue=0x1149=2889
2889=24*120+9
$hexPid[1]=120=0x78
$digitMapIndex=9

--------$j=0
$byteValue=0x9C2=2498
2498=24*104+2
$hexPid[0]=104=0x68
$digitMapIndex=2
$ecodedChars[28]=D


$i=27

$hexPid= [0]=68 [1]=78 [2]=D8 [3]=5D [4]=D9 [5]=0C [6]=8B [7]=48 [8]=A6 [9]=DF [10]=89 [11]=9B [12]=A0 [13]=1B [14]=00

--------$j=14
$byteValue=0x000=0
0=24*0+0
$hexPid[14]=0=0x00
$digitMapIndex=0

--------$j=13
$byteValue=0x01B=27
27=24*1+3
$hexPid[13]=1=0x01
$digitMapIndex=3

--------$j=12
$byteValue=0x3A0=928
928=24*38+16
$hexPid[12]=38=0x26
$digitMapIndex=16

--------$j=11
$byteValue=0x169B=4251
4251=24*177+3
$hexPid[11]=177=0xB1
$digitMapIndex=3

--------$j=10
$byteValue=0x389=905
905=24*37+17
$hexPid[10]=37=0x25
$digitMapIndex=17

--------$j=9
$byteValue=0x17DF=4575
4575=24*190+15
$hexPid[9]=190=0xBE
$digitMapIndex=15

--------$j=8
$byteValue=0x15A6=4006
4006=24*166+22
$hexPid[8]=166=0xA6
$digitMapIndex=22

--------$j=7
$byteValue=0x2248=5704
5704=24*237+16
$hexPid[7]=237=0xED
$digitMapIndex=16

--------$j=6
$byteValue=0x168B=4235
4235=24*176+11
$hexPid[6]=176=0xB0
$digitMapIndex=11

--------$j=5
$byteValue=0x110C=2828
2828=24*117+20
$hexPid[5]=117=0x75
$digitMapIndex=20

--------$j=4
$byteValue=0x20D9=5337
5337=24*222+9
$hexPid[4]=222=0xDE
$digitMapIndex=9

--------$j=3
$byteValue=0x95D=2397
2397=24*99+21
$hexPid[3]=99=0x63
$digitMapIndex=21

--------$j=2
$byteValue=0x21D8=5592
5592=24*233+0
$hexPid[2]=233=0xE9
$digitMapIndex=0

--------$j=1
$byteValue=0x078=120
120=24*5+0
$hexPid[1]=5=0x05
$digitMapIndex=0

--------$j=0
$byteValue=0x068=104
104=24*4+8
$hexPid[0]=4=0x04
$digitMapIndex=8
$ecodedChars[27]=M


$i=26

$hexPid= [0]=04 [1]=05 [2]=E9 [3]=63 [4]=DE [5]=75 [6]=B0 [7]=ED [8]=A6 [9]=BE [10]=25 [11]=B1 [12]=26 [13]=01 [14]=00

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/92565.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/92565.shtml
英文地址,請注明出處:http://en.pswp.cn/web/92565.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

IDEA快捷鍵壁紙分享

說明&#xff08;1&#xff09;因為顯示器的尺寸不同&#xff0c;對快捷鍵顯示的位置稍作調整 &#xff08;2&#xff09;這里默認您熟悉常用的快捷鍵&#xff0c;分享一些功能好用但是用的少的快捷鍵空壁紙筆記本壁紙&#xff08;15.6寸&#xff09;24 寸顯示器壁紙

InnoDB vs MyISAM: MySQL存儲引擎的世紀對決

選錯存儲引擎&#xff1f;你的數據庫性能可能暴跌80%&#xff01; 本文用最直觀的對比拆解MySQL兩大核心存儲引擎的差異&#xff0c;讓你徹底明白什么場景該選誰。一、引擎全景圖: 數據庫的"心臟"之爭 ?? #mermaid-svg-KTQko8kEUvOkTb4L {font-family:"trebuc…

【Avalonia】無開發者賬號使用iOS真機調試跨平臺應用

文章目錄1. 要求1.1 無需Apple開發者賬號1.2 最新版mac系統1.3 最新版Xcode2. 配對Mac3. 配置開發證書3.1 創建一個名為MTClient的Xcode項目3.2 找到簽名證書3.3 配置簽名3.4 配置標識符4. 真機調試4.1 設置應用首屏 Launch Screen4.2 設置應用圖標5. 問題5.1 DI異常該問題的解…

【LLM實戰|langchain】langchain基礎

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 【LLM實戰|langchain】langchain基礎 1. 模型 I/O 封裝 把不同的模型&#xff0c;統一封裝成一個接口&#xff0c;方便更換模型而不用重構代碼。 1.1 …

十九、MySQL-DQL-基本查詢

基本查詢代碼&#xff1a;DQL:基本查詢 1.查詢指定字段 name,entrydate 并返回 -- 1.查詢指定字段 name,entrydate 并返回 select name,entrydate from tb_emp;2.查詢返回所有字段 -- 2.查詢返回所有字段 -- 推薦 select id, username, password, name, gender, image, job, e…

CamX-驍龍相機修改

1. 修改視頻模式預覽尺寸和分辨率 vendor/codeaurora/packages/apps/SnapdragonCamera/src/com/android/camera/CaptureModule.javaprivate void updatePreviewSize() {int width mPreviewSize.getWidth();int height mPreviewSize.getHeight(); - mPreviewSize new …

容器技術基礎與實踐:從鏡像管理到自動運行配置全攻略

1. 相比較虛擬機&#xff0c;容器有哪些技術優勢&#xff1f;&#xff08;1&#xff09;直接在操作系統上運行&#xff0c;從而跨系統上的所有容器共享資源&#xff0c;‘&#xff08;2&#xff09;共享主機的內核。&#xff08;3&#xff09;與虛擬機相比&#xff0c;它需要的…

書生浦語第五期-L1G4-InternLM 論文分類微調實踐(XTuner 版)

XTuner介紹一句話介紹XTuner&#xff1a;XTuner 是一個高效、靈活、全能的輕量化大模型微調工具庫。核心特點&#xff1a;高效&#xff1a;支持在有限資源下微調大模型&#xff0c;如在8GB顯存上微調7B參數模型&#xff0c;也支持多節點微調70B模型&#xff1b;自動分發高性能算…

從靈感枯竭到批量產出:無憂秘書創作平臺如何重構內容生產者的工作流程?全環節賦能分析

在當今快節奏的數字時代&#xff0c;內容創作者面臨著前所未有的挑戰。無論是自媒體運營者、自由撰稿人還是企業營銷人員&#xff0c;都需要高效地生產高質量的內容以滿足市場需求。然而&#xff0c;靈感枯竭、效率低下以及內容質量不穩定等問題常常困擾著這些內容生產者。為了…

【開源工具】基于Python的PDF清晰度增強工具全解析(附完整源碼)

??? 【開源工具】基于Python的PDF清晰度增強工具全解析(附完整源碼) ?? 個人主頁:創客白澤 - CSDN博客 ?? 系列專欄:??《Python開源項目實戰》 ?? 熱愛不止于代碼,熱情源自每一個靈感閃現的夜晚。愿以開源之火,點亮前行之路。 ?? 希望大家多多支持,我們一起進…

Qwen-Image開源模型實戰

Qwen-Image開源模型實戰&#xff1a;ComfyUI低顯存量化部署與中文海報生成指南 阿里云通義千問團隊最新開源的Qwen-Image模型以其卓越的中英文文本渲染能力在AI繪圖領域掀起了一場革命。這款200億參數的MMDiT架構模型不僅能夠生成高質量圖像&#xff0c;更突破了AI繪圖長期存在…

JavaWeb03——javascript基礎語法

1.什么是JavaScript&#xff1f;JavaScript&#xff08;簡稱 JS&#xff09;是一種 編程語言&#xff0c;它主要用來為網頁添加交互功能。它可以讓網頁變得動態&#xff0c;讓它不僅僅是靜態的文字和圖片&#xff0c;還能響應用戶操作&#xff08;比如點擊按鈕、彈框警告等&…

數據庫入門:從零開始構建你的第一個數據庫

歡迎來到數據庫的世界&#xff01;今天&#xff0c;我們將一起探索如何創建、管理和查詢數據庫。無論你是初學者還是希望加深理解的開發者&#xff0c;這篇博客都將幫助你更好地掌握數據庫的基礎知識。一、數據庫的基本操作創建數據庫首先&#xff0c;讓我們從創建一個新數據庫…

從匯編角度揭秘C++構造函數(1)

C的構造函數一直比較神秘&#xff0c;今天我們通過匯編的角度來揭秘一下&#xff0c;它的本質是什么。與常規函數有什么不同。從以下這段代碼說起&#xff1a; class Person { public:Person(int age) { _age age; }void printAge(){ printf("age %d\r\n",_age); …

java10學習筆記

Java 10 于 2018 年 3 月發布&#xff0c;是 Java 平臺按照新的六個月發布周期發布的第一個版本。雖然相比 Java 8 和 Java 9 的大型更新&#xff0c;Java 10 的變化較小&#xff0c;但仍然引入了一些重要的特性&#xff0c;特別是本地變量類型推斷&#xff08;var&#xff09;…

Flutter Listview的基本使用

Listview() 前端頁面常見的一個以列表方式顯示內容的組件。可垂直或水平滾動的列表。屬性說明scrollDirection設置滾動的方向&#xff0c;取值包括horizontal、verticalreverse設置是否翻轉&#xff0c;默認值falseitemExtent設置滾動方向子元素的長度&#xff0c;垂直方向為高…

強化學習筆記:從Q學習到GRPO

推薦學習huggingface的強化學習課程&#xff0c;全面了解強化學習的發展史。 以下是個人筆記&#xff0c;內容不一定完整&#xff0c;有些是個人理解。 基于值函數(value function)的強化學習 基于值函數(value function)的強化學習&#xff1a;學習的是一個值函數&#xff0…

MySQL索引底層原理與性能優化實踐

#技術棧深潛計劃一、前言 在日常開發中&#xff0c;MySQL數據庫以其高效、易用、可擴展等特性成為最主流的關系型數據庫之一。而索引作為數據庫查詢優化的核心工具&#xff0c;被譽為“數據庫的加速器”。但你真的了解MySQL索引的底層原理嗎&#xff1f;為什么InnoDB默認采用B樹…

Ext系列文件系統

1.硬件常見的硬件有磁盤、服務器、機柜、機房機械磁盤但是計算機中唯一的一個機械設備磁盤外設的特點就是外設慢容量大&#xff0c;價格便宜1.1.磁盤的物理結構磁盤的物理圖&#xff1a;磁盤的存儲圖扇區:是磁盤存儲數據的基本單位&#xff0c;512字節&#xff0c;塊設備磁盤的…

前綴函數——KMP的本質

前綴函數我個人覺得 oiwiki 上的學習順序是很合理的&#xff0c;學 KMP 之前先了解前綴函數是非常便于理解的。前后綴定義 前綴 prefixprefixprefix 指的是從字符串 SSS 的首位到某個位置 iii 的一個子串&#xff0c;這樣的子串寫作 prefix(S,i)prefix(S,i)prefix(S,i)。 后綴 …