RSA公钥、私钥生成,详细讲解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RSA公钥、私钥生成,详细讲解相关的知识,希望对你有一定的参考价值。
参考技术A RSA密钥生成过程openssl:是一个自由的软件组织,专注做加密和解密的框架。
genrsa:指定了生成了算法使用RSA
-out:后面的参数表示生成的key的输入文件
1024:表示的是生成key的长度,单位字节(bits)
可以拿着这个文件去数字证书颁发机构(即CA)申请一个数字证书。CA会给你一个新的文件cacert.pem,那才是你的数字证书。(要收费的)
509是一种非常通用的证书格式。
将用上面生成的密钥privkey.pem和rsacert.csr证书请求文件生成一个数字证书rsacert.crt。这个就是公钥
![Upload Snip20160323_6.png failed. Please try again.]
在 ios开发中,公钥是不能使用base64编码的,上面的命令是将公钥的base64编码字符串转换成二进制数据
在iOS使用私钥不能直接使用,需要导出一个p12文件。下面命令就是将私钥文件导出为p12文件。
执行完上面的这些,我们现在就得到了四个文件
需要在finder中进行搜搜,搜p.p12、reacert.der即可,为了方便查找,可将其导出到别的文件夹中。
注:p.p12 为私钥 reacert.der 为公钥
java编写非对称加密,解密,公钥加密,私钥解密,RSA,rsa
非对称加密已经被评为加密标准,主要包含(公钥加密私钥解密,或者私钥加密公钥解密)本文主要讲解的是如何用java生成 公钥和私钥并且 进行字符串加密 和字符串解密
//如需要代码copy如下
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.util.HashMap;
import java.util.Map;
import javax.crypto.Cipher;
import javax.crypto.NoSuchPaddingException;
import sun.applet.resources.MsgAppletViewer;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class KeyRSA1 {
//密钥对生成器
private KeyPairGenerator keyPairGenerator;
//密钥对 里面包含(公钥he 私钥)
private KeyPair keyPair;
//公钥对象
private PublicKey publicKey;
//私钥对象
private PrivateKey privateKey;
//加密解密通用类型
private String keyType = "RSA";
/*** 构造函数
* @param keySize 密钥长度取值范围(512-16384)建议1024或者2048 别整太长降低性能
* @throws Exception*/
public KeyRSA1(int keySize) throws Exception {
// 1创建 keypairGengerator密钥生成器对象
keyPairGenerator = KeyPairGenerator.getInstance(keyType);
// 2指定密钥生成器的长度
keyPairGenerator.initialize(keySize);
// 3创建 keypair 根据密钥生成器获取密钥对 里面包含(公钥和私钥)
keyPair = keyPairGenerator.genKeyPair();
// 4 根据密钥对 创建 公钥
publicKey = keyPair.getPublic();
// 5 根据密钥对 创建 私钥
privateKey = keyPair.getPrivate();
}
// 使用公
以上是关于RSA公钥、私钥生成,详细讲解的主要内容,如果未能解决你的问题,请参考以下文章