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 在 #匿名化
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