解析Tor V3 Onion域:提取公钥、校验和与版本信息

解析Tor V3 Onion域:提取公钥、校验和与版本信息

本教程详细介绍了如何通过编程方式解析tor v3 onion域名,以提取其核心组成部分:公钥、校验和以及版本号。文章将深入讲解base32解码过程和字节级的数据提取方法,并提供实用的php代码示例,指导您如何从给定的.onion地址中识别这些关键元素。

理解Tor V3 Onion地址结构

Tor V3 onion地址是隐藏服务在Tor网络中的标识符。与V2地址相比,V3地址更长、更安全,并包含了服务的身份公钥、一个版本字段和一个基本校验和。这些信息经过base32编码后形成我们常见的.onion地址。

根据Tor的隐藏服务协议规范(rend-spec-v3.txt),一个V3 onion地址的结构可以概括为:

onion_address = base32(PUBKEY | CHECKSUM | VERSION) + ".onion"

其中:

  • PUBKEY:是隐藏服务的32字节Ed25519主公钥。
  • VERSION:是一个单字节的版本字段,默认值为\x03(即十进制的3)。
  • CHECKSUM:是一个2字节的校验和,通过对常量字符串、公钥和版本字段进行SHA3-256哈希计算后截取前两个字节得到。其计算公式为:CHECKSUM = H(".onion checksum" | PUBKEY | VERSION)[:2]。这里的H代表SHA3-256哈希函数。

这意味着,在移除.onion后缀并进行base32解码后,我们将得到一个35字节的二进制字符串,其内部结构为:

  • 前32字节是公钥(PUBKEY)。
  • 接下来的2字节是校验和(CHECKSUM)。
  • 最后1字节是版本号(VERSION)。

准备工作:Base32解码库

由于PHP标准库中不直接提供Base32解码功能,我们需要引入一个第三方库。本教程将以一个常见的Base32库为例(例如,通过Composer安装的base32-php/base32)。

iSlide PPT iSlide PPT

DeepSeek AI加持,输入主题生成专业PPT,支持Word/PDF等45种文档导入,职场汇报、教学提案轻松搞定

iSlide PPT 375 查看详情 iSlide PPT

首先,确保您的项目已安装了Base32解码库。如果您使用Composer,可以通过以下命令安装:

composer require base32-php/base32

然后,在您的PHP脚本中引入自动加载器:

require_once 'vendor/autoload.php';
use Base32\Base32;

逐步解析V3 Onion地址

我们将以示例地址 pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd.onion 进行解析。

1. 预处理:移除.onion后缀

首先,从完整的onion地址中移除.onion后缀,只保留base32编码的部分

<?php

require_once 'vendor/autoload.php';
use Base32\Base32;

$onionUrl = "pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd.onion";

// 移除.onion后缀
$domain = str_replace(".onion", "", $onionUrl);

echo "Base32编码字符串: " . $domain . "\n";
// 预期输出: pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd

?>

2. Base32解码

接下来,使用Base32库对提取出的字符串进行解码。解码后的结果应该是一个35字节的二进制字符串。

<?php
// ... (前置代码与引入Base32库) ...

$decodedBytes = Base32::decode($domain);

// 验证解码后的长度
if (strlen($decodedBytes) !== 35) {
    die("错误: 解码后的字符串长度不正确,应为35字节。\n");
}

echo "Base32解码后的原始字节串 (hex): " . bin2hex($decodedBytes) . "\n";
// 预期输出示例: 2b80a2b5e28a9b2c2d4f21b7f1e7a6d8c0b2f5e1d4c3a2b1f0e9d8c7a6d5b4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5c4e3f2d1c0b9a8e7b6d5

以上就是解析Tor V3 Onion域:提取公钥、校验和与版本信息的详细内容,更多请关注php中文网其它相关文章!

本文转自网络,如有侵权请联系客服删除。