linux - 混淆使用 52 个字符设置 i2p base32

标签 linux encryption sha256 tunnel base32

我正在尝试配置和 eepsite,他们的 base32 太长,i2p 使用 b32 还是 sha256?或者 b32 转换为 256,用于 eepsite?给出的示例是 52 个字符 http://www.i2p2.de/naming.html#base32 base32 不是 52 个字符,而是 32 个字符 http://online-calculators.appspot.com/base32/ .我错过了什么? 是否有专门针对 i2p 的工具?

最佳答案

Base32 是一种编码任意字节数据的符号。 Base32 编码数据的最大长度没有限制 - “32 个字符”是指用于以 Base32 表示法写入任意字节数据的字符集。结果字符串将仅包含该集合中的字符。唯一的限制是 Base32 编码的字符串长度必须是 40 位的倍数。

I2P 中的 Base32 地址是 I2P 目标的 SHA256 哈希的 Base32 编码。

这是一个 Python 脚本,用于将 Base64 编码的 I2P 目标转换为 I2P B32 地址(来自 I2P Monotone 存储库中的 i2p.scripts 分支):

#!/usr/bin/env python
#
# Written by duck
# http://forum.i2p/viewtopic.php?t=4367
#
import base64, hashlib, sys

if len(sys.argv) != 2:
    print 'Usage: 64to32.py <base64key>'
    sys.exit(1)

key = sys.argv[1]
raw_key = base64.b64decode(key, '-~')
hash = hashlib.sha256(raw_key)
base32_hash = base64.b32encode(hash.digest())
print base32_hash.lower().replace('=', '')+'.b32.i2p

关于linux - 混淆使用 52 个字符设置 i2p base32,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20237769/

相关文章:

linux - Gradle 不显示任何控制台输出

r - 在 Linux 上为 R 安装 PostgreSQL 包时没有这样的文件错误 libpq-fe.h

javascript - SHA-256 密码生成器

linux - 使用模式文件进行反向 grep 搜索?

encryption - 如何在HTTPS协议(protocol)栈中加入自定义加密算法?

encryption - 如何将 RSA 公钥上传到 HSM(使用 PKCS#11 库)?

node.js - 使用 ECDH 和 nodejs 加密解密 secret

mysql - SHA256算法结果的长度

c++ - 检测到 'RuntimeLibrary' 不匹配

linux - Unix - Expect 在执行命令时不工作