gpt4 book ai didi

java - 如何使用 java 为 tor onion 服务生成有效的私钥(RSA 1024)?

转载 作者:行者123 更新时间:2023-11-29 04:20:22 25 4
gpt4 key购买 nike

我正在尝试为 java 中的 tor onion 服务生成一个有效的私钥。有了这个私钥,我想获得一个有效的 .onion 地址。

我已经运行了下面代码的各种组合(有这个位/没有那个位)

KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(1024);
KeyPair keyPair = keyPairGenerator.generateKeyPair();
PrivateKey privateKeyGenerated = keyPair.getPrivate();

KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PrivateKey privateKey = keyFactory.generatePrivate(new PKCS8EncodedKeySpec(privateKeyGenerated.getEncoded()));

Base64.Encoder encoder = Base64.getEncoder();
String privateKeyEncoded = encoder.encodeToString(privateKey.getEncoded());

String fileName = "{{where I'm wanting to store the file}}";
Writer writer = new FileWriter(fileName);
writer.write("-----BEGIN RSA PRIVATE KEY-----\n");
writer.write(privateKeyEncoded);
writer.write("\n-----END RSA PRIVATE KEY-----\n");
writer.close();

生成后,我将 key 复制到我的 /var/lib/tor/hidden_​​service/private_key,删除所有关联的主机名 并启动 tor 服务。在日志中我得到错误:

TLS error: wrong tag (in asn1 encoding routines:ASN1_CHECK_TLEN:---)
TLS error: nested asn1 error (in asn1 encoding routines:ANS1_D2I_EX_PRIMITIVE:---)
TLS error: nested asn1 error (in asn1 endoding routines:ASN1_TEMPLATE_NOEXP_D2I:---)
TLS error: RSA lib (in rsa routines:OLD_RSA_PRIV_DECODE:---)

如果生成了生成的 .onion 地址,则它不起作用。

如何生成有效的私钥?

最佳答案

解决方案:将 BEGIN RSA PRIVATE KEY 更改为 BEGIN PRIVATE KEY

Java 以 PKCS#8 格式对 key 进行编码

PrivateKey privateKey = keyFactory.generatePrivate(new PKCS8EncodedKeySpec(privateKeyGenerated.getEncoded()));

但是您生成的 PEM 文件带有 header -----BEGIN RSA PRIVATE KEY----- 保留给 PKCS#1 key (旧格式但很常见), .onion 假定它是 pkcs1,而实际上它是 pkcs8。查看错误

TLS error: RSA lib (in rsa routines:OLD_RSA_PRIV_DECODE:---)

所以你需要使用 PCKS#8 header -----BEGIN PRIVATE KEY-----

另见这篇文章 Load a RSA private key in Java (algid parse error, not a sequence)

关于java - 如何使用 java 为 tor onion 服务生成有效的私钥(RSA 1024)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49671309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com