两种方式-生成RSA256私钥公钥

两种方式生成私钥公钥

1.ssh-keygen 方式

生成加密长度4096位密钥

生成私钥:ssh-keygen -t rsa -b 4096 -f ${private}.key

生成公钥:openssl rsa -in ${private}.key -pubout -outform PEM -out ${public}.key.pub

转换格式:openssl pkcs8 -topk8 -inform PEM -in jwtRS256.key -outform pem -nocrypt -out pkcs8.pem

生成加密长度1024位密钥

生成私钥:ssh-keygen -t rsa -b 1024 -f ${private}.key

生成公钥:openssl rsa -in ${private}.key -pubout -outform PEM -out ${public}.key.pub

转换格式:openssl pkcs8 -topk8 -inform PEM -in jwtRS256.key -outform pem -nocrypt -out pkcs8.pem

2.openssl方式

生成加密长度1024位密钥

生成私钥:openssl genrsa -out rsaprivatekey.pem 1024

生成公钥:openssl rsa -in rsaprivatekey.pem -out rsapublickey.pem -pubout

转换格式:openssl pkcs8 -topk8 -in rsaprivatekey.pem -out pkcs8rsaprivate_key.pem -nocrypt

最大加密明文长度为117位,最大解密密文128位

比如:需要加密String param = "id=1&name=张三",实际上只能加密到:id=1&name.

使用一对1024位密钥私钥-加密后得到密文:[B@39ba5a14.

解密也只能按照128位:[B@39ba5a14 将1024位公钥解密后 得到id=1&name

我这里使用的公私钥分别为:

publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCr1CJfUouPBVoGAnoxUd2Uj8MZ\n" +
 "NFvFSBYNlK74zwQxFsPXhNq2ba3JQCwV6P35cNqEK2htaG+phr/Gy+3YVQWl1Tau\n" +
 "5bVbsWCkwO+5EHdx9dN1IfUUO9Y9NDarUxYyeBOvtfc2I/bA5xwPkskRMzBKWbp1\n" +
 "kC9AxstNiOoJnUNF3wIDAQAB";

privateKey = "MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAKvUIl9Si48FWgYC\n" +
 "ejFR3ZSPwxk0W8VIFg2UrvjPBDEWw9eE2rZtrclALBXo/flw2oQraG1ob6mGv8bL\n" +
 "7dhVBaXVNq7ltVuxYKTA77kQd3H103Uh9RQ71j00NqtTFjJ4E6+19zYj9sDnHA+S\n" +
 "yREzMEpZunWQL0DGy02I6gmdQ0XfAgMBAAECgYEAkFVO0hc6V1a9edLW5VrI76Oa\n" +
 "1C8g7yRQMfQ0zZbHBJ0EwKI+PYL/uc8HuRfPTpo3U1JLE6voL9SaftiJ32/7nyJv\n" +
 "5ij6Yy+aX2q93oU9Y+9AZ9ottynY5X2pDwhVtw87ESa/zSGVjq+6fkc9+3FsmnKi\n" +
 "XCbyKN2d0RAITaMyQpECQQDXnAwdSzFubmLyoKoRsMiNckvGH6lDjykvjbhBkTCy\n" +
 "E8AVkxI0F9Kk5UTMLqCJyd1D7tCQuLkWu4IT+cZoA6oVAkEAzAR+MKm5kNT28Jzm\n" +
 "JqX0i2nX3SR1LLbf+oKqM2X21z4XJVIbZH9iTlYpwU9ctvENfMl26p5r3HzXb8xY\n" +
 "UqExIwJBAJGqntCnvYTDVVxgyaXcDxLpFmKLf3riXMwA7mx14DVffJXW4CSLt8eq\n" +
 "Efn0wod092VvEj/EXWALXM2MIcyiNSUCQFlZhmKNkoWJn3SVYn5+o/ECs9VYCDFD\n" +
 "DijKXPwRpd9yg/SGVxTWbRldxv+wYCyGuZ9zJC9wnlB8JGYEGpJlof0CQQCg2wrN\n" +
 "iXhlPca0KboggdqThdESAdpINS5lq4ZhZDpIlUY7HmZCG/VdXXPnd4U4JAsBJhS6\n" +
 "uglcCks44QIDM9D6";

密钥可分为1024,2048,4096等位密钥,位数不同,可加解密明文长度不一。 比如1024位密钥: 可加解密明文长度 len = 1024/8 - 11 = 117字节。

rsa1024 公钥c语言程序,两种方式生成RSA 公钥私钥相关推荐

  1. Py之qrcode:调用python的qrcode库两种方式生成二维码、带logo的二维码

    Py之qrcode:调用python的qrcode库两种方式生成二维码.带logo的二维码 目录 python编程实现生成二维码 1.第一种方式-纯文本 2.第二种方式-带logo

  2. c语言冒泡排序法程序填空_【C语言】两种方式实现冒泡排序算法

    题目要求 编写一个C语言程序,实现基本的冒泡排序算法. 算法 冒泡排序,用一句话来总结: 一组数中,相邻的两个数进行比较.交换,将最大(小)数交换至尾(首)部,即完成了一次冒泡排序 要想对N个数字进行 ...

  3. 【C语言】两种方式实现冒泡排序算法

    题目要求 编写一个C语言程序,实现基本的冒泡排序算法. 算法 冒泡排序,用一句话来总结: 一组数中,相邻的两个数进行比较.交换,将最大(小)数交换至尾(首)部,即完成了一次冒泡排序 要想对N个数字进行 ...

  4. 冒泡排序的两种方式c语言代码,【C语言】两种方式实现冒泡排序算法

    题目要求 编写一个C语言程序,实现基本的冒泡排序算法. 算法 冒泡排序,用一句话来总结: 一组数中,相邻的两个数进行比较.交换,将最大(小)数交换至尾(首)部,即完成了一次冒泡排序 要想对N个数字进行 ...

  5. r如何连接oracle,R语言 R两种方式连接Oracle

    关注微信公共号:小程在线 关注CSDN博客:程志伟的博客 一.通过RODBC包连接oracle 1.首先在本机找到ODBC数据源,点击添加,按照自己的oracle,填写下面三个位置 2.填写完之后,点 ...

  6. C语言中两种方式表示时间日期值time_t和struct tm类型的相互转换

    使用gmtime函数或localtime函数将time_t类型的时间日期转换为structtm类型: 使用time函数返回的是一个long值,该值对用户的意义不大,一般不能根据其值确定具体的年.月.日 ...

  7. 使用Math 类 和 Random类 两种方式生成 20 到30之间的随机整数---java基础

    package com.henu;import java.util.Random;public class Test05 {public static void main(String[] args) ...

  8. 运行python程序的两种方式交互式和文件式_执行Python程序的两种方式

    交互式(了解) 交互式环境下,敲完一条命令按下enter键马上能看到结果,调试程序方便.程序无法永久保存,关掉cmd窗口数据就消失了. 命令行式(了解) 打开文本编辑器,在文本编辑器中写入一串字符. ...

  9. 基础知识:编程语言介绍、Python介绍、Python解释器安装、运行Python解释器的两种方式、变量、数据类型基本使用

    阅读目录 今日学习内容: 1.编程语言的介绍 2.Python介绍 3.安装Python解释器(多版本共存) 4.运行Python解释器程序两种方式.(交互式与命令行式)(♥♥♥♥♥) 5.变量(♥♥ ...

最新文章

  1. OpenGL函数:wglCreateContext
  2. java 静态绑定原理_Java方法的静态绑定与动态绑定讲解
  3. java对象实例_深入理解Java对象实例生成的例子!(转)
  4. GYM101002C - Greetings!
  5. 内卷的世界,我们是否可以换一种思维生活?
  6. 高德在提升定位精度方面的探索和实践
  7. decimal转为string sql_PHP+Mysql防止SQL注入的方法
  8. python可以实现的功能_Python 实现某个功能每隔一段时间被执行一次的功能方法...
  9. Java语言程序设计(基础篇) 第十一章 继承和多态
  10. jQuery二维码插件 jquery.qrcode.js
  11. 研究表明,越早退休越长寿
  12. python抓取qq空间相册_用Python爬取QQ空间说说和相册!还不让我访问!
  13. Vue项目调用扫一扫功能 亲测好用!!!
  14. outlook邮箱显示一直启动中_outlook邮箱打不开一直在加载
  15. cf英文名字格式好看的_cf好看的英文名字格式:、I (~) you ?
  16. 惠普电脑u盘重装系统步骤_惠普笔记本u盘重装系统|惠普笔记本怎么用u盘重装系统...
  17. ubuntu搜狗输入法
  18. 建立您的初创企业:通过URL邀请他人
  19. 张镰:平阳县电子商务服务中心数字化转型模式探索
  20. 计算机视觉与深度学习第七章:经典网络分析

热门文章

  1. java基础语法试题_请问有没有java基础语法的练习题?发个链接吧!?
  2. 《他乡的童年》观后感——英国教育
  3. Matlab传统神经网络函数:Newff的使用方法记录
  4. 学人工智能好就业吗?可以做什么?AI就业方向及前景
  5. DFAnet:Deep Feature Aggregation for Real-time Semantic Segmentation自己翻译的
  6. 开车的26条教训!开车的人一定看看!
  7. Linux系列:linux中查看文件时显示行号
  8. 天载理财解读国家大基金跌超五个点
  9. C语言,从联合看字节序
  10. pandas合并操作