`
fengyie007
  • 浏览: 153611 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java RSA密钥生成

    博客分类:
  • java
阅读更多

在网上找了下RSA的密钥的创建,结果全是用java序列化PublicKey和PrivateKey来保存,就自己写了个RSA公钥和私钥的创建,及进行Base64编码后保存。

这里用到了 bcprov-jdk16-1.4.5.jar ,可以在 http://www.bouncycastle.org/ 官方主页上下载.

 

public static void createKeyPairs() throws Exception {
    Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
    // create the keys
    KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA", "BC");
    generator.initialize(512, new SecureRandom());
    KeyPair pair = generator.generateKeyPair();
    PublicKey pubKey = pair.getPublic();
    PrivateKey privKey = pair.getPrivate();
    byte[] pk = pubKey.getEncoded();
    byte[] privk = privKey.getEncoded();
    String strpk = new String(Base64.encodeBase64(pk));
    String strprivk = new String(Base64.encodeBase64(privk));

    System.out.println("公钥:" + Arrays.toString(pk));
    System.out.println("私钥:" + Arrays.toString(privk));
    System.out.println("公钥Base64编码:" + strpk);
    System.out.println("私钥Base64编码:" + strprivk);

    X509EncodedKeySpec pubX509 = new X509EncodedKeySpec(Base64.decodeBase64(strpk.getBytes()));
    PKCS8EncodedKeySpec priPKCS8 = new PKCS8EncodedKeySpec(Base64.decodeBase64(strprivk.getBytes()));

    KeyFactory keyf = KeyFactory.getInstance("RSA", "BC");
    PublicKey pubkey2 = keyf.generatePublic(pubX509);
    PrivateKey privkey2 = keyf.generatePrivate(priPKCS8);

    System.out.println(pubKey.equals(pubkey2));
    System.out.println(privKey.equals(privkey2));
  }

 

分享到:
评论

相关推荐

    JAVA RSA密钥对的生成与验证

    这段代码首先获取了RSA密钥生成器,然后初始化为2048位长度(为了安全性,通常选择较长的密钥长度),最后生成并分离出公钥和私钥。 接下来,我们可以使用公钥对数据进行加密,私钥进行解密。例如: ```java ...

    RSA密钥生成工具window版安装包

    详细步骤: 1.根据开发语言选择密钥格式。 2.选择密钥长度,新建应用请务必使用2048位。...3.点击 “生成密钥”,会自动生成商户应用公钥和应用私钥。 4.点击“打开密钥文件路径”,即可找到生成的公私钥。

    Java 生成RSA密钥进行数据加密解密 支持超长字符分区

    本篇主要介绍如何使用Java生成RSA密钥对,进行数据的加密与解密,以及如何处理超长字符的分区问题。 RSA是一种非对称加密算法,它基于两个不同的密钥:公钥和私钥。公钥用于加密,而私钥用于解密。这种机制使得只有...

    rsa密钥生成工具.zip

    这个"rsa密钥生成工具.zip"文件很可能包含了帮助开发者生成RSA密钥对的程序或者指南,特别是针对支付宝这样的支付平台,非对称加密技术是必不可少的安全保障。 在非对称加密中,有两个密钥:公钥和私钥。公钥可以...

    Java实现RSA生成公钥私钥

    使用自定义的RSA密钥生成方式有助于深入理解加密过程,但需要注意的是,这种方式可能不如标准库那样安全和高效,因为它没有经过专业安全团队的审核和优化。在实际项目中,除非有特殊需求,一般推荐使用Java的`...

    Java RSA加密密钥生成器

    Java RSA加密密钥生成器

    OpenSSL工具生成RSA密钥1

    在这个场景中,我们主要关注如何使用 OpenSSL 生成 RSA 密钥对,这是许多网络安全应用的基础,比如 SSL/TLS 加密、数字签名以及 SSH 连接等。 1. **安装 OpenSSL**: 在 Windows 上,你可以通过下载 OpenSSL 的 ...

    Java&keytool生成RSA密钥

    总之,Java和Keytool在RSA密钥生成方面提供了强大的功能,无论是对于开发者还是系统管理员,理解和掌握这些工具和概念都是至关重要的。通过正确使用这些工具,可以确保数据的安全传输和身份验证,从而保障网络应用的...

    .net 与Java间RSA加密的转换

    1. 生成RSA密钥对:在.NET和Java中都应提供生成公钥和私钥的方法。 2. 导出和导入密钥:将密钥从.NET的XML格式转换为Java可读的DER或PEM格式,反之亦然。 3. 加密和解密:根据平台提供加密和解密的功能,确保在.NET...

    RSA,DSA 密钥对生成器源代码

    JDK 1.7以上版本(含) ...生成1024位的RSA密钥对; java -jar keygen.jar rsa 生成1024为的DSA密钥对 java -jar keygen.jar dsa 版权所有, 公布源码, 随意转载修改再发布, 注明出处即可 编译后的JAR下载 ...

    根据git项目个人二次开发的rsa和ecdsa密钥生成工具

    本文将深入探讨这两种密钥生成工具以及它们在个人二次开发中的应用。 首先,RSA(Rivest-Shamir-Adleman)是一种公钥加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman于1977年提出。其核心原理基于大整数因子...

    java密钥生成工具

    Java密钥生成工具是用于创建数字证书和管理密钥对的实用程序,主要涉及Java的安全框架。`keytool`是Java SDK自带的一个命令行工具,它允许用户在本地系统上生成、存储和管理密钥对以及信任证书。在这个场景中,我们...

    RSA任意长度密钥生成工具

    标题中的“RSA任意长度密钥生成工具”是指可以生成任意位数的RSA密钥对的软件。在标准RSA算法中,密钥长度通常是以位(bits)为单位,常见的有1024位、2048位、4096位等。密钥长度越长,安全性越高,但加密和解密的...

    本地生成RSA密钥对工具包,RSA加密解密

    本地生成RSA密钥对工具包,运行直接生成,1024和2048位都可以,修改配置文件config.properties中的参数即可,运行后本目录下生成4个文件:privateKey.txt,publicKey.txt,privateKey.pem,publicKey.pem

    Java RSA加密 与.net 的密匙转换完整版,java类

    1. **生成RSA密钥对**:在Java中,我们可以使用`KeyPairGenerator`类的`generateKeyPair()`方法生成一对RSA密钥,包括一个公钥(PublicKey)和一个私钥(PrivateKey)。生成的密钥通常以X.509编码格式存储。 2. **...

    RSA加密JAVA转C# JAVA转PHP,C#转JAVA

    压缩包中的`rsa_c#2java`可能是一个C#编写的工具,用于将RSA密钥从C#格式转换为JAVA可使用的格式。使用该工具时,需要确保系统已安装.NET Framework环境,否则可能无法运行。转换后,可以在JAVA应用程序中直接使用...

    Delphi7+RSA密钥+MD5withRSA+签名

    Delphi使用OpenSSL,根据RSA密钥文件(.pem)进行签名。Delphi7可用,解决UTF8中文奇数bug,签名结果与java常用的MD5withRSA算法、PHP的openssl_sign($data, $encrypted, $private_key, OPENSSL_ALGO_MD5)函数算法得到...

    JavaRSA生成公钥私钥加解密

    JavaRSA生成公钥私钥及加解密是Java编程中涉及密码学的重要实践。RSA是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因其发明者的名字首字母命名。在Java中,我们可以使用Java ...

    java_RSA2048加密解密.zip

    这些库允许在浏览器环境中生成RSA密钥对,并使用公钥对敏感数据进行加密,然后将加密后的数据发送到服务器。 后端,Java作为一种常用的企业级开发语言,拥有丰富的安全库,例如Bouncy Castle,用于处理RSA加密解密...

    RSA密钥生成和加密解密的本机实现。.zip

    1. **密钥生成**:首先选择两个大质数p和q,计算它们的乘积n=p*q。接着,找到欧拉函数φ(n)=(p-1)*(q-1),选择一个与φ(n)互质的整数e作为公钥的指数。然后,计算e关于φ(n)的模逆d,即存在一个整数d使得(e*d) mod ...

Global site tag (gtag.js) - Google Analytics