使用mac终端生成RSA私钥和公钥文件

89:~ zhangwenquan$ 

89:~ zhangwenquan$ openssl

OpenSSL> genrsa -out rsa_private_key.pem 1024

Generating RSA private key, 1024 bit long modulus

..........++++++

..................++++++

e is 65537 (0x10001)

OpenSSL> pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt

-----BEGIN PRIVATE KEY-----

MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBALldSA5HtPvyhEUK

a6M+Cn2jwUQx1lekTK0gM7jSFhzKhcY7ADeVhL+AjGtnYvlGY+npOEM1DqJPBBiu

cbPkyBtPHErZRjN0r0rZiqS0AY7j/EvG656W8S+rhN59AWtV3zuCF0C6pOWnUiMr

7GcyQR1qoX2BN7R2kr8ZwM92WroNAgMBAAECgYAhpMuqQ9uWixr0yQJmW6Fd0nYG

oaEMwTZlid25YvA+g4eqRhUxAYNZmsRhzh8JrXv+/aSHlj60uPC+ZhMfGpwzAYo1

I0KR+dQT5uoP1nhqVZev+cXICabJ3gKCzbvdIFz1TxL8NJw1UlssNLtxdn68QVWh

/wSz/7ppGdKrgVIM4QJBAOS36NuVMsut6iPxLmtOpRz+VTZj8jS1yXz0/sv+WIoj

zcBabuMTVixMvuK49dBZTTOd5AXCizzKDx4qdD/VdUkCQQDPeYYjJTbi2rsOsyoK

+CcMnTYLJN8fWLNR3vLGoHxayOMHDW8Lfc4YrZJCGzoSuR3ikMZBOf9mXjO2NNsu

TxKlAkAqyGgLYw48YUzR6lR3iB+Em+KOqQVubK7C7AUZXXtsY6QiHght+3j8EmMG

f/ijP4EcbaVwmmJ3PYi0aNaT9jbZAkBJQxpQssVs2dwP1shT00jGtYTt7nkzcnjv

whBsfyMqU6GHTgEWR7hNEo2A9mhNUDzzUjgPtFExbrZH8uYqthVZAkB2/TLnvwDM

fzXIlSUTWi5nqILJhNWzY5l3XC03iH0WEvCi5QGNsOsvomdX7Krj0Imavc2L9hVj

fELfsTQfy0Dz

-----END PRIVATE KEY-----

OpenSSL> rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

writing RSA key

OpenSSL>

 

红色是要输入的命令。

 

 

 

这个红色的框是pkcs8 格式的    要记得复制下来   后台要用。

 

 

然后前往文件夹  寻找pem证书

 

 

 

 

 

这就是要生成的  pem 文件

 

转载于:https://www.cnblogs.com/KiVen2015/p/5321574.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RSA是一种非对称加密算法,其是成对生成的。以下是RSA生成以及加解密的步骤: 1. 生成RSA: 首先需要随机生成两个大素数p和q,计算n = p * q,再选取一个整数e(一般为65537),计算d = e^-1 mod ((p-1) * (q-1))。 生成为(n, e),为(n, d)。 2. RSA加密: 假设要将明文M加密为密文C,使用(n, e)进行加密,计算C = M^e mod n。 3. RSA解密: 使用(n, d)进行解密,计算M = C^d mod n。 以下是一个简单的RSA加解密的C语言实现示例: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <openssl/bio.h> #include <openssl/rsa.h> #include <openssl/pem.h> int main() { // 生成RSA RSA *rsa = RSA_generate_key(2048, 65537, NULL, NULL); if (rsa == NULL) { printf("Failed to generate RSA key pair.\n"); return -1; } // 获取 BIO *pubBio = BIO_new(BIO_s_mem()); BIO *priBio = BIO_new(BIO_s_mem()); PEM_write_bio_RSAPublicKey(pubBio, rsa); PEM_write_bio_RSAPrivateKey(priBio, rsa, NULL, NULL, 0, NULL, NULL); // 获取字符串 char pubKey[1024] = {0}; char priKey[4096] = {0}; BIO_read(pubBio, pubKey, sizeof(pubKey)); BIO_read(priBio, priKey, sizeof(priKey)); // 输出 printf("Public Key:\n%s\n", pubKey); printf("Private Key:\n%s\n", priKey); // 加密明文 char *plaintext = "Hello World!"; int plaintextLen = strlen(plaintext) + 1; char ciphertext[4096] = {0}; int ciphertextLen = RSA_public_encrypt(plaintextLen, (unsigned char *)plaintext, (unsigned char *)ciphertext, rsa, RSA_PKCS1_PADDING); if (ciphertextLen == -1) { printf("Failed to encrypt plaintext.\n"); return -1; } // 输出密文 printf("Ciphertext:\n"); for (int i = 0; i < ciphertextLen; i++) { printf("%02x", ciphertext[i]); } printf("\n"); // 解密密文 char decrypted[4096] = {0}; int decryptedLen = RSA_private_decrypt(ciphertextLen, (unsigned char *)ciphertext, (unsigned char *)decrypted, rsa, RSA_PKCS1_PADDING); if (decryptedLen == -1) { printf("Failed to decrypt ciphertext.\n"); return -1; } // 输出解密后的明文 printf("Decrypted plaintext: %s\n", decrypted); // 释放资源 RSA_free(rsa); BIO_free_all(pubBio); BIO_free_all(priBio); return 0; } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值