萌宠霸王


蓝牙配网协议v1

<p>&gt; 当前配网版本,是第一版。后续可能会更新。目前的流程是连接蓝牙后,清除配网记录、发送wifi配网开始状态、发送wifi账号、密码、mac和ip 二进制包。然后等待配网成功...</p> <p>[协议文档(1).docx](<a href="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=421a09d90cc2f20d65130af0bd542e5f">https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=421a09d90cc2f20d65130af0bd542e5f</a> &quot;[协议文档(1).docx&quot;)</p> <h2>流程图</h2> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=d98ab665ea0e13b86d71cbd9066fe435&amp;amp;file=file.png" alt="" /></p> <pre><code class="language-php">//号码加密 public function encodePhone($phone) { // 将 Base64 编码的密钥转换为二进制 $keyBinary = base64_decode(&amp;quot;67bzU3b9CQNWSZs7qbVHS1uwAbhvuRURkYx+o7e+V4c=&amp;quot;); // 确定密钥长度,根据长度选择合适的 AES 算法 $keyLength = strlen($keyBinary); switch ($keyLength) { case 16: $cipher = &amp;#039;aes-128-ecb&amp;#039;; break; case 24: $cipher = &amp;#039;aes-192-ecb&amp;#039;; break; case 32: $cipher = &amp;#039;aes-256-ecb&amp;#039;; break; default: throw new InvalidArgumentException(&amp;#039;不支持的密钥长度&amp;#039;); } // 执行加密操作,使用 PKCS7 填充(openssl 默认是 PKCS7 填充) $encrypted = openssl_encrypt($phone, $cipher, $keyBinary, OPENSSL_RAW_DATA); // 将加密结果进行 Base64 编码 return urlencode(base64_encode($encrypted)); } //二进制包处理 public function encodeWifiName($wifi_name) { // 模拟 Uint8Array,将字符串转换为字节数组(在 PHP 中用字符串存储字节) $length = strlen($wifi_name); // 遍历字符串中的每个字符 for ($i = 0; $i &amp;lt; $length; $i++) { // 获取当前字符的 ASCII 码,并添加到数组中 $inputBytes[] = ord($wifi_name[$i]); } // $inputBytes = str_split($wifi_name); // 初始化头部信息 $header = [ 0x09, // 类型字段,0x09 表示 Wi-Fi 账号 0x00, // 功能码(re),默认为 0x00 0x01, // 序列号(aeg),0x01 表示第一个数据包 count($inputBytes) // 数据长度,表示 Wi-Fi 账号的长度 ]; // 合并头部信息和 Wi-Fi 账号数据 $combinedBytes = array_merge($header, $inputBytes); // 将字节数组转换为字符串形式(模拟 ArrayBuffer 的存储) return $combinedBytes; }</code></pre>

页面列表

ITEM_HTML