JAVA_RSA密钥生成

在网上找了下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));
  }
时间: 2024-08-24 02:12:21

JAVA_RSA密钥生成的相关文章

Windows下RSA密钥生成工具openssl

点击下载 1. 生成原始 RSA私钥文件 private_key.pem openssl genrsa -out private_key.pem 1024 2. 将原始 RSA私钥转换为 pkcs8格式 openssl pkcs8 -topk8 -inform PEM -in private_key.pem -outform PEM -nocrypt -out rsa_private_key.pem 3. 生成 RSA公钥 rsa_public_key.pem openssl rsa -in p

RSA密钥生成与使用

1. 打开openssl密钥生成软件打开 openssl 文件夹下的 bin 文件夹,执行 openssl.exe 文件,如下图: 2. 生成RSA私钥 输入"genrsa -out rsa_private_key.pem 1024"命令,回车后,在当前 bin 文件目 录中会新增一个rsa_private_key.pem 文件,其文件为原始的商户私钥(请妥善保 存该文件,PHP 开发语言中需要使用该文件),以下为命令正确执行截图: 3. 生成RSA公钥 输入"rsa -in

非对称加密技术里面,最近出现了一种奇葩的密钥生成技术,iFace人脸密钥技术

要说到非对称加密技术啊,得先说说对称加密技术 什么是对称加密技术 对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥加密. 也就是密钥也可以用作解密密钥,这种方法在密码学中叫做对称加密算法,对称加密算法使用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密性好,而且对计算机功能要求也没有那么高 对称加密算法存在几个问题 1.要求提供一条安全的渠道使通讯双方在首次通讯时协商一个共同的密钥.直接的

Gitee之https密钥生成及项目初始化脚本

一.账户https公钥生成 本地生成ssh密钥对 ssh-keygen -t rsa -C 158******73 //执行密钥生成命令 enter //生成到默认路径C:\Users\Yang\.ssh y //选择是 到C:\Users\Yang.ssh目录下,将公钥文件id_rsa.pub中的所有内容配置到gitee账户的ssh公钥中 二.在gitee新建一个仓库,名为yan***curity 三.将本地目录与gitee仓库同步 git init git remote add origin

密钥生成以及GitLab配置

安装Git 开通gitlab(开通需要咨询所在公司的gitlab管理员)账号后,本地Git仓库和gitlab仓库仍然不能传输项目,原因是要通过SSH加密才能传输,所以需要让gitlab认证本地的SSH Key 认证之前,则先使用Git生成SSH Key 1 Git生成秘钥 1.1 确认本地秘钥 SSH 秘钥默认储存在账户的主目录下的 ~/.ssh 目录 如:C:\Users\BF100400\.ssh\ 查看是否包含id_rsa和id_rsa.pub(或者是id_dsa和id_dsa.pub之类

Git SSL公钥密钥生成

下面教大家简单易懂的五步配置好密钥 第一次配置ssh 和ssl git config --global --list 查看git的配置 步骤: 1. git config --global user.name  " "   (写用户名) 2. git config --global user.email  " "   ( 写用户邮箱) 3. ssh-keygen -t rsa -C   " "              (写上邮箱) 生成密钥 4

git-sshkey密钥生成

git使用方式很多,但是都需要权限认证才可以访问服务器, 权限包括几种,常用的有:用户名密码方式.sshkey方式 其中sshkey方式,最重要的就是key的生成和配置. 配置是在对应的管理系统中维护的,在此处就不介绍了 生成是在本机进行的.mac,linux直接在shell里就可以了,windows 建议安装 git-bash 然后执行. 命令如下: ssh-keygen -t rsa -C "你的邮箱地址" 然后一路回车,不要填写任何东西(生成在默认的路径里,并且不需要密码) 默认

Linux中生成密钥的两种方法

Linux中生成密钥的两种方法 SSH服务支持一种安全认证机制,即密钥认证.所谓的密钥认证,实际上是使用一对加密字符串,一个称为公钥(publickey), 任何人都可以看到其内容,用于加密:另一个称为密钥(privatekey),只有拥有者才能看到,用于解密.通过公钥加密过的密文使用密钥可以轻松解密,但根据公钥来猜测密钥却十分困难. ssh的密钥认证就是使用了这一特性.服务器和客户端都各自拥有自己的公钥和密钥.如何使用密钥认证登录linux服务器呢? 在使用密钥认证远程登入linux之前,我们

java编程之:生成rsa密钥

通过openssl工具生成RSA的公钥和私钥(opnssl工具可在互联网中下载到,也可以点此下载无线接口包,里面包含此工具) 打开openssl文件夹下的bin文件夹,执行openssl.exe文件: 1)生成RSA私钥 输入“生成命令.txt”文件中:“genrsa -out rsa_private_key.pem 1024”,并回车得到生成成功的结果,如下图: 此时,我们可以在 bin文件夹中看到一个文件名为rsa_private_key.pem的文件,用记事本方式打开它,可以看到-----