相关疑难解决方法(0)

如何从文件加载RSA私钥

我正在研究SAML 1.1断言消费者服务的测试工具.测试必须生成签名的SAMLResponse并将其提交给Base64中编码的ACS.ACS必须能够使用X509公共证书验证签名的消息.

我能够构建SAMLResponse,添加必要的断言等.但是当我尝试签署对象时,我遇到了问题.这是我当前代码的片段:

String certPath = "mycert.pem";
File pubCertFile = new File(certPath);
BufferedInputStream bis = null;
try {
    bis = new BufferedInputStream(new FileInputStream(pubCertFile));
} catch(FileNotFoundException e) {
    throw new Exception("Could not locate certfile at '" + certPath + "'", e);
}
CertificateFactory certFact = null;
Certificate cert = null;
try {
    certFact = CertificateFactory.getInstance("X.509");
    cert = certFact.generateCertificate(bis);
} catch(CertificateException e) {
    throw new Exception("Could not instantiate cert", e);
}
bis.close();
ArrayList<Certificate> certs = new ArrayList<Certificate>();
certs.add(cert);

String keyPath = "mykey.pem"; …
Run Code Online (Sandbox Code Playgroud)

java rsa saml

59
推荐指数
2
解决办法
10万
查看次数

使用来自authorized_keys的公钥和Java安全性

如何使用系统authorized_keys文件中的条目进行java.security.PublicKey实现?我特别想要将authorized_keys文件中的公钥与Apache SSHD PublickeyAuthenticator界面中提供的公钥进行比较.

java security openssh

12
推荐指数
2
解决办法
4696
查看次数

丢失密钥对后访问EC2实例

几个月前我启动了一个EC2实例,当时我将.pem密钥存储在我的电脑中.PC崩溃了,我不得不重新安装Windows,我没有.pem文件的备份

有什么方法可以让我在EC2实例上获得提示 - 任何方式ssh或以其他方式获取实例?

amazon-ec2

9
推荐指数
1
解决办法
1万
查看次数

解析并读取java中的公钥

我需要使用java读取公钥并对其进行解析,以检查其有效性,指数,模数或是否有效.我尝试了以下代码,并遇到了问题.能帮我找到解决这个问题的方法吗?

public static void getPublicKey(String key) throws Exception {

key = key.replaceAll("-----BEGIN SSH2 PUBLIC KEY-----", "");
key = key.replaceAll("-----END SSH2 PUBLIC KEY-----", "");
KeyFactory kFactory = KeyFactory.getInstance("RSA", new BouncyCastleProvider());
byte pub_llave[] =  new BASE64Decoder().decodeBuffer( key ) ;
X509EncodedKeySpec spec =  new X509EncodedKeySpec(pub_llave);
PublicKey pubkey = (PublicKey) kFactory.generatePublic(spec);
}
Run Code Online (Sandbox Code Playgroud)

以下是例外情况:

java.lang.IllegalArgumentException: unknown object in getInstance: org.bouncycastle.asn1.DERApplicationSpecific
    at org.bouncycastle.asn1.ASN1Sequence.getInstance(Unknown Source)
    at org.bouncycastle.asn1.ASN1Sequence.getInstance(Unknown Source)
    at org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getInstance(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

java bouncycastle public-key-encryption

6
推荐指数
1
解决办法
5001
查看次数

Java ssh-rsa字符串到公钥

我想获取.pub文件内容的公钥.这是一个.pub文件内容(生成ssh-keygen)的示例:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDBPL2s+25Ank3zS6iHUoVk0tS63dZM0LzAaniiDon0tdWwq4vcL4+fV8BsAEcpMeijS92JhDDc9FccXlHbdDcmd6c4ITOt9h9xxhIefGsi1FTVJ/EjVtbqF5m0bu7ruIMGvuP1p5s004roHx9y0UdHvD/yNWLISMhy4nio6jLailIj3FS53Emj1WRNsOrpja3LzPXzhuuj6YnD9yfByT7iGZipxkmleaXrknChPClLI9uhcqtAzBLdd0NVTJLOt/3+d1cSNwdBw9e53wJvpEmH+P8UOZd+oV/y7cHIej4jQpBXVvpJR1Yaluh5RuxY90B0hSescUAj4g/3HVPpR/gE7op6i9Ab//0iXF15uWGlGzipI4lA2/wYEtv8swTjmdCTMNcTDw/1huTDEzZjghIKVpskHde/Lj416c7eSByLqsMg2OhlZGChKznpIjhuNRXz93DwqKuIKvJKSnhqaJDxmDGfG7nlQ/eTwGeAZ6VR50yMPiRTIpuYd767+Nsg486z7p0pnKoBlL6ffTbfeolUX2b6Nb9ZIOxJdpCSNTQRKQ50p4Y3S580cUM1Y2EfjlfIQG1JdmTQYB75AZXi/cB2PvScmF0bXRoj7iHg4lCnSUvRprWA0xbwzCW/wjNqw6MyRX42FFlvSRrmfaxGZxKYbmk3TzBv+Fp+CADPqQm3OQ== test@test.com
Run Code Online (Sandbox Code Playgroud)

如果我是对的,这不是公钥,但可以从此字符串中获取公钥.

这个答案给出了我的问题 的答案/sf/answers/1357126221/
但答案似乎不起作用.我得到一个例外:

java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: invalid key format
Run Code Online (Sandbox Code Playgroud)

在查看答案的评论时,我不是唯一有问题的人...

我该如何修复异常?或者是否有另一种方法从字符串中获取公钥?

java encryption ssh rsa public-key-encryption

6
推荐指数
2
解决办法
6135
查看次数

将 openSSH rsa 密钥转换为 javax.crypto.Cipher 兼容格式

有没有办法以编程方式将Jsch生成的 SSH RSA 密钥转换为可用于加密的javax.crypto.Cipher格式?我大多看到过类似的答案

openssl pkcs8 -topk8 -inform PEM -outform DER -in private_key_file -nocrypt > pkcs8_key
Run Code Online (Sandbox Code Playgroud)

但我无法访问 openSSL 或 shell 命令。顺便说一句:我只使用 JDK6。

BigInteger感谢 @erickson 的帮助,我可以使用指数和模数作为传递给 a 的类型,KeyFactory将公钥从 RFC4716 转换为 Java 公钥RSAPublicKeySpec。他的解决方案如下。

现在我正在尝试转换私钥。privateJsch.key这是使用生成的示例writePrivateKey(str filename)

-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQC0ouLgTjmKjHU6UjNSL8HyTIdFM1UdVpgU81paWKreN8L36YoT
goZQHeyyUCCHmq3r3cKaySyu93mHBY0l76qSAIRZgE1IAFkBhNWBdlJ9UYA9HXm/
MqTQHbpqz0EYGE9TsFHS8dn1/utsJxKSWZ4xPNYjfS4Ps6G84iRwfdrIbQIDAQAB
AoGAKv3xnY1AqLcRV5Yk3NS9Blwsfc3f3iG0BJh+0q3zzPvcjYCp+kbAjOTyZuYn
N98asd6P6KMk3WfNJtOtanAGWl46bmtzNsQtSr5rVQEgs2w8i2yJcwVAYf2Td4qX
m3dH+roJA/CEFRSDat4sUfjOVmsYQXIBa0W2XTpp+7T1U4ECQQD1wSR6iTz7Bja0
MPcizDbRTRQHALBf7E8j8YOLpN/IGSox9pT+ktjsI2vMaD+b3SM4s0FD8quBlppE
o5FAguHxAkEAvCrCK7eZU3H+Ul1iw9Kd3WPHjDvQcdT5rEL+NSYEZyHgU7ipXEih
UHvK47Bkte/PVIu3jBFBnMujA0XiT0gSPQJBAI3+8j/nChgU6AjHfhRaIJZgzeCZ
8k8KcFPZWWOXeUHZ4HqL+lz5pmMSuFecKJy7cn1xfZVwIs62oR5l0CiRN1ECQCui
CqaSi3ZjH6M/znA0PbEhuxsUn7BVv5OncUUnzKuRmnAviO5CVU3Rdum3dJMPydcE
Ewri0YEnY2SV5vWVc80CQH43uBbshz7ju3DdVykHFrRElQB+f0YMK3Ad7eu+us0w
dLrOOoXP0T60B/bMTo8rdMa6XU/0w/w8FsOqoxNY23U=
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)

使用openssl asn1parse -in privateJsch.key -out privateJsch.der产量:

$ openssl asn1parse …
Run Code Online (Sandbox Code Playgroud)

java security encryption ssh rsa

3
推荐指数
1
解决办法
6046
查看次数