Tag: pkcs#1

如何使用BouncyCastle lightwigth API生成cms封装数据

经过艰难的无数个小时后,我终于得到了当前的工作代码,使用JCE / JCA生成带有收件人信息的CMS封装(RSA-OAEP / PKCS#1)数据: String digest = “SHA-256”; String mgfDigest = “SHA-256”; // Data to encrypt CMSTypedData msg = new CMSProcessableByteArray(data); // Generator for my CMS enveloped data CMSEnvelopedDataGenerator envelopedDataGen = new CMSEnvelopedDataGenerator(); // Recipient Info Stuff JcaAlgorithmParametersConverter paramsConverter = new JcaAlgorithmParametersConverter(); OAEPParameterSpec oaepSpec = new OAEPParameterSpec(digest, “MGF1”, new MGF1ParameterSpec(mgfDigest), PSource.PSpecified.DEFAULT); AlgorithmIdentifier oaepAlgId = […]

PKCS#1 V2.0是否针对Java实现?

我需要使用PKCS#1 V2.0加密方法(在PKCS#1V2规范的第 7.2.1节中定义)加密数据。 它已经为Java实现了吗? 我正在考虑将一个参数传递给javax.crypto.Cipher指定“PKCS#1V2”,我想知道是否有这样的东西?

将SubjectPublicKeyInfo格式的公钥转换为RSAPublicKey格式java

PublicKey.getEncoded()返回一个包含SubjectPublicKeyInfo(x.509)格式的公钥的字节数组,如何将其转换为RSA公钥编码?

使用Java解密OpenSSL PEM编码的RSA私钥?

我有一个加密的私钥,我知道密码。 我需要使用Java库解密它。 我不想使用BouncyCastle,除非没有其他选择。 根据以往的经验,有太多的变化,没有足够的文档。 私钥是这种forms: —–BEGIN RSA PRIVATE KEY—– Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,56F3A98D9CFFA77A X5h7SUDStF1tL16lRM+AfZb1UBDQ0D1YbQ6vmIlXiK…. ….. /KK5CZmIGw== —–END RSA PRIVATE KEY—– 我相信关键数据是Base64编码,因为我看到64个字符后的\r\n 。 我尝试了以下解密密钥: import java.security.Key; import java.security.KeyFactory; import java.security.PrivateKey; import java.security.spec.PKCS8EncodedKeySpec; import javax.crypto.EncryptedPrivateKeyInfo; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.PBEKeySpec; public String decrypt(String keyDataStr, String passwordStr){ // This key data start from “X5… to ==” char [] password=passwordStr.toCharArray(); […]

使用Java生成PKCS#1格式的RSA密钥

当我使用Java API生成RSA密钥对时,公钥以X.509格式编码,私钥以PKCS#8格式编码。 我希望将它们编码为PKCS#1。 这可能吗? 我花了相当多的时间浏览Java文档,但还没有找到解决方案。 当我使用Java和Bouncy Castle提供程序时,结果是一样的。 以下是代码片段: KeyPairGenerator keygen = KeyPairGenerator.getInstance(“RSA”,”BC”); keygen.initialize(1024); KeyPair pair = keygen.generateKeyPair(); PrivateKey priv = pair.getPrivate(); PublicKey pub = pair.getPublic(); byte[] privBytes = priv.getEncoded(); byte[] pubBytes = pub.getEncoded(); 两个结果字节数组的格式为X.509(公共)和PKCS#8(私有)。 任何帮助将非常感激。 有一些类似的post,但没有一个真正回答我的问题。 谢谢