#匿名化 #tor #洋葱路由 #隐私

hexpawb

一个易于连接到 HexPawb 网络的库

4 个版本

0.1.2 2022 年 6 月 20 日
0.1.1 2022 年 6 月 15 日
0.1.0 2022 年 6 月 15 日
0.0.1 2022 年 6 月 15 日

#3#匿名化

BSD-3-Clause

9KB
72

hexpawb

hexpawb 是一个用于与 HexPawb 网络进行程序接口的 Rust 库。更多详情,请参阅 主仓库。有关协议详情,请查看 维基


lib.rs:

此软件包提供了一个简洁简单的接口,用于访问 HexPawb 网络。如果你想要通过 HexPawb 加载 https://www.torproject.org/,你只需要

use hexpawb::Network;
// First you need to connect to the HexPawb network
let mut network = Network::connect().await
.expect("Failed to join network");
// Then you can create a circuit
let mut circuit = network.circuit().await
.expect("Failed to build circuit");
// Then you can connect to something over that circuit (this does DNS
// through the circuit, but to your system's configured DNS servers)
let mut connection = circuit.tcp("www.torproject.org:80").await
.expect("Failed to connect circuit");
// TCP connections work basically just like the stdlib's TcpStream,
// but async.
connection.send("GET / HTTP/1.1\r\nConnection: close\r\n\r\n").await
.expect("Failed to send request");
std::io::copy(circuit, std::io::stdout().lock()).await
.expect("Failed to receive body");

破坏隐私

只有当你确切知道你在做什么,并且你能够清楚地、不确定地说明你为什么需要这样做时,你才能使用具有功能 dangerous-low-level-bits 的低级 API。如果你没有正确使用它,你将永远失去自己的匿名性。这启用了以下功能

use hexpawb::Network;
let mut network = Network::builder()
.authority(custom_authority)
.connect().await
.expect("Failed to join network");
let mut circuit = network.tcp("www.torproject.org:90")
.length(10)
.relay(specific_relay)
.connect().await
.expect("Failed to connect circuit");
circuit.send("GET / HTTP/1.1\r\nConnection: close\r\n\r\n").await
.expect("Failed to send request");
std::io::copy(circuit, std::io::stdout().lock()).await
.expect("Failed to receive body");

依赖项

~1MB
~16K SLoC