
本教程详细介绍了如何通过编程方式解析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)。
首先,确保您的项目已安装了Base32解码库。如果您使用Composer,可以通过以下命令安装:
composer require base32-php/base32
然后,在您的PHP脚本中引入自动加载器:
require_once 'vendor/autoload.php';use Base32Base32;
逐步解析V3 Onion地址
我们将以示例地址 pg6mmjiyjmcrsslvykfwnntlaru7p5svn6y2ymmju6nubxndf4pscryd.onion 进行解析。
1. 预处理:移除.onion后缀
首先,从完整的onion地址中移除.onion后缀,只保留base32编码的部分。
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中文网其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1336345.html
微信扫一扫
支付宝扫一扫