首页 > 编程语言 >java 用bouncycastle 生成pem格式的rsa

java 用bouncycastle 生成pem格式的rsa

时间:2024-07-05 14:54:20浏览次数:5  
标签:java bouncycastle rsa StringWriter pem import org new

maven  pem.xml

<dependency>  
    <groupId>org.bouncycastle</groupId>  
    <artifactId>bcprov-jdk15on</artifactId>  
    <version>1.70</version> <!-- 请根据需要检查最新版本 -->  
</dependency>

 

java 用bouncycastle 生成pem格式的rsa

import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers;  
import org.bouncycastle.asn1.x500.X500Name;  
import org.bouncycastle.asn1.x509.AlgorithmIdentifier;  
import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo;  
import org.bouncycastle.cert.X509v1CertificateBuilder;  
import org.bouncycastle.cert.jcajce.JcaX509CertificateConverter;  
import org.bouncycastle.cert.jcajce.JcaX509v1CertificateGenerator;  
import org.bouncycastle.jce.provider.BouncyCastleProvider;  
import org.bouncycastle.openssl.PEMKeyPair;  
import org.bouncycastle.openssl.PEMParser;  
import org.bouncycastle.openssl.jcajce.JcaPEMWriter;  
import org.bouncycastle.operator.ContentSigner;  
import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder;  
  
import java.io.ByteArrayOutputStream;  
import java.io.IOException;  
import java.io.StringWriter;  
import java.math.BigInteger;  
import java.security.*;  
import java.security.cert.X509Certificate;  
import java.util.Date;  
  
public class RSAGenerator {  
  
    static {  
        Security.addProvider(new BouncyCastleProvider());  
    }  
  
    public static void main(String[] args) throws Exception {  
        KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA", "BC");  
        keyPairGenerator.initialize(2048);  
        KeyPair keyPair = keyPairGenerator.generateKeyPair();  
  
        // 保存公钥为PEM格式  
        StringWriter publicKeyWriter = new StringWriter();  
        try (JcaPEMWriter pemWriter = new JcaPEMWriter(publicKeyWriter)) {  
            pemWriter.writeObject(keyPair.getPublic());  
        }  
        String publicKeyPem = publicKeyWriter.toString();  
  
        // 保存私钥为PKCS#8 PEM格式  
        StringWriter privateKeyWriter = new StringWriter();  
        try (JcaPEMWriter pemWriter = new JcaPEMWriter(privateKeyWriter)) {  
            pemWriter.writeObject(keyPair.getPrivate());  
        }  
        String privateKeyPem = privateKeyWriter.toString();  
  
        System.out.println("Public Key (PEM):");  
        System.out.println(publicKeyPem);  
        System.out.println("Private Key (PKCS#8 PEM):");  
        System.out.println(privateKeyPem);  
    }  
}

 

标签:java,bouncycastle,rsa,StringWriter,pem,import,org,new
From: https://www.cnblogs.com/zhian/p/18285811

相关文章

  • 星火绘镜Typemovie:用故事绘制你的视频“镜”
    星火绘镜Typemovie是一个创新的短视频创作平台,它允许用户通过简单的描述来快速生成短视频,将文字转化为视觉艺术。以下是该平台的一些关键特性:核心特性:故事即创作:用户可以用心绘出自己的故事,平台将其转化为视频画面。短视频轻松生成:简化的视频制作流程,即使是视频制作的初学者......
  • A LLM-based Controllable, Scalable, Human-Involved User Simulator Framework for
    目录概CSHI(Controllable,Scalable,andHuman-Involved)代码ZhuL.,HuangX.andSangJ.Allm-basedcontrollable,scalable,human-involvedusersimulatorframeworkforconversationalrecommendersystems.2024.概作者利用LLM进行用户模拟,虽然是复杂了一点......
  • BUUCTF---rsa_output
    题目点击查看代码{21058339337354287847534107544613605305015441090508924094198816691219103399526800112802416383088995253908857460266726925615826895303377801614829364034624475195859997943146305588315939130777450485196290766249612340054354622516207681542973756......
  • 用故事绘就生活:探索星火绘镜Typemovie的艺术魅力
    在快节奏的生活中,我们常常渴望用一种独特的方式记录和分享我们的故事。星火绘镜Typemovie,一个创新的短视频创作平台,以其独特的即时创作功能,让我们的故事以视频的形式轻松呈现。Typemovie的核心魅力在于它的简单易用和创意无限。用户只需通过描述自己的想法,平台就能智能地将这......
  • C#版本的sha256withRSA 私钥加密 方法
    publicstaticstringSign(stringcontentForSign,stringprivateKey){ //转换成适用于.Net的秘钥 varnetKey=RSAPrivateKeyJava2DotNet(privateKey); varrsa=newRSACryptoServiceProvider(); rsa.FromXmlString(netKey); //创建一个空对象 varrsaClear=newR......
  • RSA密码系统的特定密钥泄露攻击与Coppersmith方法的应用
    PrimiHub一款由密码学专家团队打造的开源隐私计算平台,专注于分享数据安全、密码学、联邦学习、同态加密等隐私计算领域的技术和内容。RSA密码系统作为当前最广泛使用的公钥加密算法之一,其安全性依赖于大整数分解问题的困难性。然而,随着计算能力的提高和算法优化,特别是Coppersmi......
  • framewrok RSA SHA512加密
    publicstaticstringEncryptPassphrase(stringpublicKey,stringpassphrase){byte[]publicKeyBytes=Convert.FromBase64String(publicKey);//创建RSA公钥参数对象RsaKeyParameterspublicKeyParams=(RsaKeyParameters)PublicKeyFactory.CreateKe......
  • 【EI核心、Scopus 】第四届计算机、遥感与航空航天国际学术会议(CRSA 2024)
    【EI核心、Scopus】第四届计算机、遥感与航空航天国际学术会议(CRSA2024)将于2024年7月5-7日在日本大阪举行。计算机、遥感与航空航天国际学术会议为来自世界各地的研究学者、工程师、学会会员以及相关领域的专家们提供一个关于“计算机科学”、“遥感技术与应用”与“航空航......
  • C#生成RSA非对称加密公钥私钥以及加密解密
    usingSystem.Security.Cryptography;usingSystem.Text;usingXunit.Abstractions;namespacexUnit.Tests{///<summary>//////</summary>publicclassRsaKeyPairGenerator{privatereadonlyITestOutputHelper_test......
  • 探索Semantic Kernel内置插件:深入了解ConversationSummaryPlugin的应用
    前言经过前几章的学习我们已经熟悉了SemanticKernel插件的概念,以及基于Prompts构造的SemanticPlugins和基于本地方法构建的NativePlugins。本章我们来讲解一下在SemanticKernel中内置的一些插件,让我们避免重复造轮子。内置插件SemanticKernel有非常多的预定义插件,作为......