Я хочу зашифровать мою почтовую нагрузку сертификатом X.509 и унаследованным открытым ключом. До сих пор у меня есть этот код java для выполнения шифрованияШифрование и дешифрование с общедоступным сертификатом X.509
private String encrypt(String str) throws Exception {
ClassPathResource classPathResource = new ClassPathResource("testcert1.crt");
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
X509Certificate certificate = (X509Certificate)certificateFactory.generateCertificate(classPathResource.getInputStream());
PublicKey pk = certificate.getPublicKey();
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1PADDING");
cipher.init(Cipher.ENCRYPT_MODE, pk);
return Base64.encodeBase64String(cipher.doFinal(str.getBytes()));
}
, который возвращает строку, закодированную в base64. С конечной точки я всегда получаю результат, что сертификат недействителен.
Так что я хочу проверить свою зашифрованную строку на консоли с помощью команды openssl
, но не смог этого сделать.
Я могу зачитать сертификат с: openssl x509 -in testcert1.crt -text -noout
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 0 (0x0)
Signature Algorithm: md5WithRSAEncryption
Issuer: C=xxx, ST=xxx, L=xxx, O=xxx, OU=xxx, CN=xxx
Validity
Not Before: Jul 24 11:40:39 2013 GMT
Not After : Jul 24 11:40:39 2015 GMT
Subject: C=xxx, ST=xxx, L=xxx, O=xxx, OU=xxx, CN=xxx
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (4096 bit)
Modulus (4096 bit):
....
Exponent: 65537 (0x10001)
Но я не могу понять, командные строки для шифрования/дешифрования текстовый файл, используя этот сертификат
'md5WithRSAEncryption' и 4096-битный ключ является * реальный * несоответствие. Возможно, вам стоит рассмотреть «sha256WithRSAEncryption». В MD5 осталось меньше 64 бит, а 4096-битный модуль имеет более 128 бит безопасности. MD5 сломан и не может обеспечить сопротивление столкновения с течением времени. – jww
ok Я возьму это для рассмотрения. Я не был тем, кто создавал этот ключ, скорее потребитель, который получил ключ от третьего лица. – MatthiasLaug
Почему? Почему бы не использовать HTTPS, как и все остальные? – EJP