【发布时间】:2021-01-08 10:03:50
【问题描述】:
当我使用.cer 文件生成加密字符串但无法解密时。
为了解密,我有一个带有 .key 扩展名的文件,里面的开头是:
-----BEGIN RSA PRIVATE KEY-----
算法:RSA/ECB/PKCS1Padding
// encrypting session key using public key
public static String encryptSessionKey_PublicKey(String data) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException, CertificateException, FileNotFoundException {
FileInputStream fin = new FileInputStream("D:\\cedge_uat\\STAR_cedgenetbanking_in.cer");
CertificateFactory f = CertificateFactory.getInstance("X.509");
X509Certificate certificate = (X509Certificate) f.generateCertificate(fin);
PublicKey publicKey = certificate.getPublicKey();
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] cipherData = cipher.doFinal(data.getBytes());
String encodedData = Base64.getEncoder().encodeToString(cipherData);
return encodedData;
}
但是如何使用.keyfile解密上面的字符串。
请帮帮我。
我已经搜索了很多解决方案,但无法找到合适的解决方案。
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAq+vXWmbEfeQ5543Pco59x4D224g+Bqvr2dN2fkz2TsvZqm5/
nlBb7YkDcQrVIIKGX0VfzJQuFEkPAG3zIXm14cuKVDJ+ubchKPHhGtdld6xQe56K
pGyeUP7aY0iKzbd+JP99T4I9hGJC3ADs+KfLEFGa9VvVigsFnpGECN+euW95c68m
vUj3HLIztMvRbWfvzvS3GOjyBfgIXUodpuzYoUChbWz7E4J43YRJpC5RxqKPkrYi
91DLUGkGA5PMqBJCnJr8ABqwq3qikJfhIPMMUjJhZYVfhrZoIDJwBuFSOyefkcBT
rxn4oY8HjliuDq3ymWZmsslb35N8M+e99ap8cwIDAQABAoIBAH/EMPKVR1gMAeCN
KmuHbACVXmA+e2I36Hqkxf4NMkvTAXvAzQUZ0YfReIZNN6EGf9hT1WNTiH844HZA
QB1Tt5EL1EzIjhd0+qbUQ6fQBi+PFu0YIQ8bTfkBvcllQwqpYI0cdsNdFlzJLckU
wwf0o1wIWbIYwrTphg6XNFnn3q0N7Iw64IxT8LFTKsp7zbAemQO/SifZZMWdFywV
7XGyFt9roK5xfplARtJcFTsSbVlP6/Pt65lJ9xGS89Y47HOTPl5NjV0UdAxqQM3i
+OJN1JwlMsPtoZmyRTn9WK+BO9MQ4ctRIoVwyGqMwLOeufXQYTUtsRE2ENIzLWp2
F45hZ1kCgYEA1BskUczE8MLiZRfwmANE95nKyYsReEpc3wnlTUHNdN+m8RfNiHGv
2VH39Vh8lEpq92pDH1lEhHQwRnvMLCTCjFqisvNWEYOqjiSReRgazjs8QCXt6kyM
FMAsOHY4XQE9k79INems18+5I+Wz0lg3F9MZzqAXoyILdyiDNDNWloUCgYEAz3/P
A/m/iN6n8E5uhBlyvGbNFYgP9GUrcYSQfV8AbZUhfbJNps+kIIhU9/SB4YBqV0hG
nN/ng3Xr4rQZzEB52cVAs2uRks3mWU7hhSGMzpS4gI6lpY4+Pdg38nFD+a/mdPxf
GRMOyreZ67WOWTM6Mt1OSlyRiGyxJqYcD6rJJJcCgYAUfjrYHGy6xlmRYurABTDY
q2dIacNaV/T5J7+b40uyixlaGe6lzDYtTRoj/lSrDzWeignKMZnJImC3rqZfbX3O
icNGfvRF5O7JpQbZKFcOrfJ4UDHYfWTbbGXZXrK7aa9FYyna66TjhRJiQYNKQ3Ov
PZo0uIsQG+33qVZj6MHo8QKBgQCMhqJMrvdoWmKh/HwcOp/ZuEVsL5meimXBm2W/
gndnv3fPCNJOBpHA9pOU2aKcdbuPIQOxenHwNgxqnE5cZc4gDdajrFYKdidqlGFn
KDGUNmQ9rF3CoXLFr4k0SEEg+F+7Gq/M63s5Dt7PI0YkYu0nRXmgItDs86+F3Tlj
4uYWQQKBgEzystNlExDfGjKGKLQR1wawfXpg43iKc960rjGfYpbhqJVEO662oEL9
25346MPkrRcLth6ioQ5dt8Ebl4p8tSAoLe/EKk2zDUSrFUXmuFd69iH2bi0Yjunm
Ph3GafgFU0loEX+KFPyuEF6PGuSwPwOlgRNn3kXmvIbg2b/DxRyB
-----END RSA PRIVATE KEY-----
【问题讨论】:
-
鼓励编辑问题以改进它们(例如澄清、添加其他信息等)鼓励。但是,编辑一个问题以将其更改为另一个问题,这会使一个或多个答案无效,这违反了 Stack Overflow 的政策。您在此处的编辑就是这样做的。该政策是其他具有编辑权限的用户应主动恢复此类更改。因此,我已恢复您的编辑。 我们鼓励您ask a new Question,也许可以提供指向此链接的链接以获取更多上下文。我们想提供帮助,但您的新问题/附加问题必须是新问题。
标签: java rsa public-key-encryption private-key encryption-asymmetric