我现在已经试图破解这几天了,而且我似乎无法让它发挥作用。
基本上我有一个.private文件,它是以下命令的结果:
dnssec-keygen -C -a DSA -b 1024 -n HOST -T KEY Hostmame
该文件采用某种格式(出于安全原因我删除了值)
Private-key-format: v1.2
Algorithm: 3 (DSA)
Prime(p): $value
Subprime(q): $value
Base(g): $value
Private_value(x): $value
Public_value(y): $value
所以我的问题是,是否有人知道如何阅读此文件并从中获取一个PrivateKey对象来签署邮件以发送到安全的DNS服务器?
我已经尝试了好几件事,但我似乎无法对这些值进行正确的解码...
尝试的事情: github上此链接的readDSAPrivateKey方法:https://github.com/bitsai/courses/blob/master/Network%20Security/A3/Honoroff-Tsai/src/DNSSEC.java还试过这个:
ObjectInputStream keyIn = new ObjectInputStream(new FileInputStream(args[3]));
PrivateKey privkey = (PrivateKey) keyIn.readObject();
keyIn.close();
任何帮助或指出都将不胜感激......
答案 0 :(得分:1)
似乎值是以Base64编码编码的。
解码的正确方法是:
byte[] data = base64.fromString(val);
if (line.startsWith("Prime(p): ")){
p = new BigInteger(1, data);
}