# Address-Decode **Repository Path**: gh8891689/address-decode ## Basic Information - **Project Name**: Address-Decode - **Description**: Address to hash160 是一款高效的多线程工具,旨在解码各种加密货币地址,以提取其 hash160 值。它包含转换器、解析器、比特币、多线程、加密货币、base58、pthreads、btc、数据处理、莱特币、狗狗币、隔离见证、bech32、bch、ltc、比特币现金、hash160、cashaddr 和地址解码等功能。 - **Primary Language**: C - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-17 - **Last Updated**: 2025-11-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: btc比特币, 地址解码, cashaddr, base58, bech32 ## README

地址转 Hash160 多线程性能 命令行工具

Base58 Bech32 (隔离见证) CashAddr 传统 & P2SH

比特币 比特币现金 莱特币 比特币黄金 达世币 以太坊 狗狗币

语言 C 无依赖 Linux & Windows 最新发布

Gitee star 赞助项目

# 项目概述 **Address_Decode** Address Decode 是一款高效的多线程命令行工具,旨在解码各种加密货币地址(如比特币BTC、比特币现金BCH、莱特币LTC、比特币黄金BTG、狗狗币DOGE等)并提取其底层的 `hash160` 值。`hash160` 是生成加密货币地址核心部分时常用的一种加密哈希。 # 功能特性 - **支持多种地址格式**:支持包括 Base58、CashAddr (Bech32)、隔离见证 (SegWit) 等多种主流加密货币地址格式。 - **高效多线程**:利用 POSIX 线程 (pthreads) 实现并行处理,加速大规模地址的解码速度。 - **内存优化**:动态分配和释放内存,确保在处理大量数据时程序的稳定性。 - **错误处理与统计**:检测解码和提取过程中的错误,并提供成功与失败数量的统计。 - **灵活的命令行参数**:支持指定输入文件、输出文件和线程数,以满足不同需求。 # 编译与使用 ## 环境要求 - **操作系统**: Linux (例如, Debian/Ubuntu) - **编译器**: GCC (支持 C99 标准) - **依赖库**: POSIX 线程库 (`pthreads`) ## 编译 ### 使用 Make ```bash make ``` ## 或者,在终端进入项目目录并运行: ```bash gcc -static -lpthread -m64 -march=native -mtune=native -Wall -Wextra -Ofast -ftree-vectorize -funroll-all-loops -flto base58.c bech32.c cashaddr.c main.c sha256.c -o decode ``` - `-o decode`: 指定输出的可执行文件名为 decode。 - `-lpthread`: 链接 POSIX 线程库。 - `-Wall`: -Wall启用所有编译器警告,有助于识别潜在问题。 ## 清理并重新编译 ```bash make clean ``` ## 免费获取全球最富地址排行榜 http://addresses.loyce.club/ https://blockchair.com/dumps # 运行程序 使用以下命令格式来运行程序: ```bash ./decode input_addresses.txt ./decode 19qZAgZM4dniNqwuYmQca7FBReTLGX9xyS ``` ``` ./decode Usage : ./decode Or : ./decode -o Example: ./decode Input_file_containing_addresses.txt ./decode 19qZAgZM4dniNqwuYmQca7FBReTLGX9xyS ./decode -o ./decode -o <19qZAgZM4dniNqwuYmQca7FBReTLGX9xyS> Tip : is "-" means reading from standard input. ``` ./decode Input_file_containing_addresses.txt 直接输入目录下要解码的地址文件名,程序会自动读取并处理。它会处理所有地址,包括从网站下载的、带有金额的地址,并进行去重和排序。默认使用4个线程执行任务。处理完成后,会自动生成2个文件,一个是成功解码的 HASH160,另一个是解码失败的地址。ETH 地址仅去除前缀 0x,BTC 多重签名脚本地址将被移除,只保留40位(20字节)的标准 HASH160 值。 ``` ./decode -o ``` -o <输出文件前缀>: 指定输出文件的前缀名,以避免与其他输出冲突或覆盖其他已处理的文件。 ## 例子: ``` ./decode Input_file_containing_addresses.txt ``` # 示例与验证 ## 示例输入文件(input_addresses.txt) ``` 19qZAgZM4dniNqwuYmQca7FBReTLGX9xyS 71588991775432 1PsfCHrCU3j8Y2eyPdSvfWMsk5H5pEm6j9 71588991775432 3FQGSwS6fiqLh7Uy4pAdYahYBY8TUxwwt5 71588991775432 bc1qvrha9apveexwukwvd8xa2nrknnqvqu8nd5a644 71588991775432 bc1pmy787t5td4sn8eayl97apvclzs6sju5sa73c690e2u05t8c53m6sk2n8zs 71588991775432 mpMWTjeKsfDy9xRXGLNzQ2TWHe43AyFPbA 71588991775432 n4PcVLwBH5APK98b7CRJVRaCc4sngyV7Kv 71588991775432 2N6xUWgN8HBLgtu7WjwnWAXgoPtLdEi8Vdr 71588991775432 tb1qvrha9apveexwukwvd8xa2nrknnqvqu8n8jxfwx 71588991775432 tb1pmy787t5td4sn8eayl97apvclzs6sju5sa73c690e2u05t8c53m6spz9gcl 71588991775432 qpswl5h59n8yemjee35um42vw6wvpsrs7v5urjyua2 71588991775432 qrawwuke343qt8j2yhhyzwht758kkk02tv0erlat2d 71588991775432 19qZAgZM4dniNqwuYmQca7FBReTLGX9xyS 71588991775432 1PsfCHrCU3j8Y2eyPdSvfWMsk5H5pEm6j9 71588991775432 GSgUaotJ3VQ1TKFCUi4izsb5LpFBDL8fUB 71588991775432 GgiacRB9SuLRcVxGKa736GhmfF4vmh4TpK 71588991775432 AVV8AtoHSyB7QuzXWNANGqbhWcmSFEc3Vi 71588991775432 btg1qvrha9apveexwukwvd8xa2nrknnqvqu8nmamlqa 71588991775432 LU4WRtsB9J2mdee4iuPur8JwdrpcLrUjD1 71588991775432 Li6cTWA2YhyBnqM8ZmSDwXRdxHeMuf9A56 71588991775432 MMcQkpr4cqgmVcksAh9yNDwwWEiuQW7pVB 71588991775432 ltc1qvrha9apveexwukwvd8xa2nrknnqvqu8nfg87d9 71588991775432 ltc1pmy787t5td4sn8eayl97apvclzs6sju5sa73c690e2u05t8c53m6s4wahc4 71588991775432 DDyehwVzN3gzur8WHMQB7sQnJnBdco8u1y 71588991775432 DU1kjYnqmTdR52qa8DSVDGXUdD1PBXiqb5 71588991775432 XjXPzwDF2M1JXnYVQeiqRdvyFz32GiBAAW 71588991775432 XyZW2YW6RkwigyFZFWm9X33faQrmpFXrZa 71588991775432 t1SiAB1yV2xaJyUzoVCDjhvM6gJeR39MVFR 71588991775432 t1gkGCdGLSNWj8fhsL4G3oKTnzjUAbnx5s9 71588991775432 xH9C4ZPpLMGkRE3muF3H1HXxekkZaoCnbb 71588991775432 xXBJ6AgfjmDAaQkqk75b6geeyBaKF19v2F 71588991775432 0xcacCF59299921f40D087760032a4E720aF5b68FC 71588991775432 ``` ## 控制台输出 ``` Total quantity: 32 Hash160 Success: 29 (Deduplicated and sorted) Hash160 failed: 3 ``` ## 输出文件(output_success.txt) 去重并排序 ``` 60efd2f42cce4cee59cc69cdd54c769cc0c070f3 9666d04e8867ce00ff5fb37ba8d413feb9ef2ef6 b860efd2f42cce4cee59cc69cdd54c769cc0c070 b8fae772d98d62059e4a25ee413aebf50f6b59ea caccf59299921f40d087760032a4e720af5b68fc fae772d98d62059e4a25ee413aebf50f6b59ea5b ``` ---------------------------------------- 旧版本 V1.0,以下是未进行去重和排序的情况。 ``` 60efd2f42cce4cee59cc69cdd54c769cc0c070f3 fae772d98d62059e4a25ee413aebf50f6b59ea5b 9666d04e8867ce00ff5fb37ba8d413feb9ef2ef6 60efd2f42cce4cee59cc69cdd54c769cc0c070f3 d93c7f2e8b6d6133e7a4f97dd0b31f1435097290efa38d15f9571f459f148ef5 60efd2f42cce4cee59cc69cdd54c769cc0c070f3 fae772d98d62059e4a25ee413aebf50f6b59ea5b 9666d04e8867ce00ff5fb37ba8d413feb9ef2ef6 60efd2f42cce4cee59cc69cdd54c769cc0c070f3 d93c7f2e8b6d6133e7a4f97dd0b31f1435097290efa38d15f9571f459f148ef5 60efd2f42cce4cee59cc69cdd54c769cc0c070f3 fae772d98d62059e4a25ee413aebf50f6b59ea5b 60efd2f42cce4cee59cc69cdd54c769cc0c070f3 fae772d98d62059e4a25ee413aebf50f6b59ea5b 60efd2f42cce4cee59cc69cdd54c769cc0c070f3 fae772d98d62059e4a25ee413aebf50f6b59ea5b 9666d04e8867ce00ff5fb37ba8d413feb9ef2ef6 60efd2f42cce4cee59cc69cdd54c769cc0c070f3 60efd2f42cce4cee59cc69cdd54c769cc0c070f3 fae772d98d62059e4a25ee413aebf50f6b59ea5b 9666d04e8867ce00ff5fb37ba8d413feb9ef2ef6 60efd2f42cce4cee59cc69cdd54c769cc0c070f3 d93c7f2e8b6d6133e7a4f97dd0b31f1435097290efa38d15f9571f459f148ef5 60efd2f42cce4cee59cc69cdd54c769cc0c070f3 fae772d98d62059e4a25ee413aebf50f6b59ea5b 60efd2f42cce4cee59cc69cdd54c769cc0c070f3 fae772d98d62059e4a25ee413aebf50f6b59ea5b b860efd2f42cce4cee59cc69cdd54c769cc0c070 b8fae772d98d62059e4a25ee413aebf50f6b59ea 60efd2f42cce4cee59cc69cdd54c769cc0c070f3 fae772d98d62059e4a25ee413aebf50f6b59ea5b caccf59299921f40d087760032a4e720af5b68fc ``` 输出文件(output_failure.txt) ``` [DECODE_FAILED] bc1pmy787t5td4sn8eayl97apvclzs6sju5sa73c690e2u05t8c53m6sk2n8zs 71588991775432 [DECODE_FAILED] tb1pmy787t5td4sn8eayl97apvclzs6sju5sa73c690e2u05t8c53m6spz9gcl 71588991775432 [DECODE_FAILED] ltc1pmy787t5td4sn8eayl97apvclzs6sju5sa73c690e2u05t8c53m6s4wahc4 71588991775432 ``` 这些是多重签名脚本地址。实际上,它们并非公钥的哈希值,而是脚本的哈希值。它们并非由40个字符的字母和数字组成,而是超过20字节。其他程序无法直接使用它们,因为其他程序只能根据公钥计算哈希值,然后将其编码成各种地址。 ## 运行命令 ``` ./decode 19qZAgZM4dniNqwuYmQca7FBReTLGX9xyS ``` ## 输出 ``` 60efd2f42cce4cee59cc69cdd54c769cc0c070f3 ``` # 笔记 - 对于 BCH 地址,00前缀hash160会被正确移除,只hash160提取有效地址。 - 对于 Segwit 和十六进制编码地址,hash160可以正确提取。 - 对于以太坊地址,仅0x删除前缀,后续值保留以供其他程序使用。 ## 致谢 特别感谢 Gemini 和 DeepSeek 在测试和翻译方面提供的帮助。 # 赞助 如果您觉得这个项目对您有帮助,请考虑赞助。这是我能给予的最大支持,我由衷地感谢。谢谢! - **BTC**: bc1qt3nh2e6gjsfkfacnkglt5uqghzvlrr6jahyj2k - **ETH**: 0xD6503e5994bF46052338a9286Bc43bC1c3811Fa1 - **DOGE**: DTszb9cPALbG9ESNJMFJt4ECqWGRCgucky - **TRX**: TAHUmjyzg7B3Nndv264zWYUhQ9HUmX4Xu4 # 免责声明 本工具仅供教育和研究用途。用户须自行承担因使用本工具而产生的任何风险和责任。开发者对因使用本工具而造成的任何损失概不负责。