4、RSA终端指令

news2025/1/14 1:09:17

RSA总结

  • 加密算法,都是数学知识
  • 对称加密(传统加密算法)
  • RSA(三个人的名字)非对称加密(现代加密算法)
    • 原根
    • 欧拉函数、欧拉定理(费马小定理)
    • 模反元素
      • m^(e * d) mod n  ≡ m
    • 迪菲赫尔曼密钥交换
  • RSA算法
    • RSA: 拆解两个(大)质数的乘积很难!所以RSA想对安全.
    • 加密: M ^e % N = C
    • 解密: C ^ d % N = M
    • 明文 : M; 密文: C ;
    • 公钥: N和E
    • 私钥: N和d
    • 条件(总共有六个数字)
      • N是由两个很大的质数(P1、P2)相乘得到! 为了方便求出φ(N).
      • D是E(65537)相对于φ(N)的模反元素

1.1 RSA的特点

  • RSA的安全系数非常高(因为整个业务逻辑非常安全)
  • 加密效率非常低(不能做大数据加密)
  • 用来加密关键数据

1.2 终端演示

  • Mac的终端可以直接使用OpenSSL进行RSA的命令运行
  • OpenSSL中RSA算法常用指令主要有三个:

命令

含义

genrsa

生成并输入一个RSA私钥

rsautl / pkeyutl

使用RSA密钥进行加密、解密、签名和验证等运算, pkeyutl公钥解密时需要签名

rsa

处理RSA密钥的格式转换等问题

  • 生成RSA私钥,密钥长度为1024bit

openssl genrsa -out private.pem 1024

  • 从私钥中提取公钥

openssl rsa -in private.pem -pubout -out public.pem

  • 生成的文件如下

  • 将私钥转换成为明文并打开

openssl rsa -in private.pem -text -out private.txt && open private.txt writing RSA key

    • 查看文本信息也可以使用

cat private.txt

  • 通过公钥加密数据,私钥解密数据
//生成明文文件
$ vi message.txt 
//查看自己输入的文件内容 
$ cat message.txt 
密码是: 654321 
//通过公钥进行加密 
$ openssl rsautl -encrypt -in message.txt -inkey public.pem -pubin -out enc.txt 
//查看加密后的文本 
$ cat enc.txt Df;�cb�<t��uU�w�̝@P��F�+�^"�d��t��Ʌf�&O��:�[�8D���+�`�N$�sL�n�LKk �e�KSTXId��Ԅ�)'��]�����y��'h�6�֒;cl;/�T������ 
//通过私钥进行解密 
$ openssl pkeyutl -decrypt -in enc.txt -inkey private.pem -out dec.txt 
//查看解密后的密文 
$ cat dec.txt 
密码是: 654321 %
  • 通过私钥加密数据,公钥解密数据
//通过私钥进行加密 
$ openssl pkeyutl -sign -in message.txt -inkey private.pem -out enc.txt 
$ cat enc.txt 
P�ƕ|_]}lӭ׈ČP����Ǎ(+�i��#�P���~{�+����G;ػP�b�?~L�z^�)��MX'`)ƛ�h�0�o�� ��6A~6��R���G U�y܏2�)���|#wCg�A4a�% 
//通过公钥进行解密 
$ openssl pkeyutl -verify -in enc.txt -inkey public.pem -pubin -out dec.txt 
pkeyutl: No signature file specified for verify 
$ openssl rsautl -verify -in enc.txt -inkey public.pem -pubin -out dec.txt 
The command rsautl was deprecated in version 3.0. Use 'pkeyutl' instead.
$ cat dec.txt 
密码是: 654321

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/435847.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端学习:HTML头部、布局

目录 HTML头部 一、HTML 元素 二、head标签和header标签的不同 三、HTML 元素 四、HTML 元素 五、HTML 元素 六、 HTML 七、HTML元素 为搜索引擎定义关键词&#xff1a; 为网页定义描述内容&#xff1a; 每60秒刷新当前页面&#xff1a; 八、HTML 九、HTML头部元素…

Vue项目搭建流程

目录 1、通过命令创建 2、npm下载依赖 3、路由配置 4、配置组件 5、对axios进行二次封装 6、全局接口请求封装 7、配置跨域(反向代理) 1、通过命令创建 create vue 项目名 2、npm下载依赖 nmp i 依赖名版本号 axios1.2.1 echarts5.1.2 element-ui2.15.12 vue-router3…

56 openEuler搭建Mariadb数据库服务器-安装、运行和卸载

文章目录 56 openEuler搭建Mariadb数据库服务器-安装、运行和卸载56.1 安装56.2 运行56.3 卸载 56 openEuler搭建Mariadb数据库服务器-安装、运行和卸载 56.1 安装 配置本地yum源&#xff0c;详细信息请参考《openEuler 22.03-LTS 搭建repo服务器》。 清除缓存。 # dnf clean…

【SpringBoot】1、SpringBoot整合JWT实现Token验证

这里写目录标题 1.单点登录1.1 单系统登录1.1.1 单系统登录流程(使用Session实现单系统登录) 1.2 多系统(单点)登录1.2.1 单点登录实现方案1.2.1.1 Session跨域1.2.1.2 Spring Session共享 1.3 Token机制1.3.1 传统身份认证1.3.2 基于Token的身份认证 1.4 JWT机制1.4.1 JWT数据…

Redis集群部署详解

文章目录 集群环境集群搭建测试集群故障转移集群扩容集群缩容 集群环境 集群介绍 1.什么是集群 所谓的集群&#xff0c;就是通过增加服务器的数量&#xff0c;提供相同的服务&#xff0c;从而让服务器达到一个稳定、高效的状态。 2.使用redis集群的必要性 单个redis存在不稳定…

9.6 数组的指针和指向数组的指针变量 - 3

9.6 数组的指针和指向数组的指针变量 - 3 一.回顾二维数组和多维数组的概念二.指向多维数组的指针和指针变量探究1.a:二维数组名&#xff0c;也是整个二维数组的首地址。我们可以认为是第0行的首地址是10002.a1 , a2 分别代表第一行首地址和第二行首地址。3.这表示a[0],a[1],a[…

Mapbox-gl.js v2.13.0 扩展支持4326,4490坐标系

mapbox-gl.js新版本中&#xff0c;支持多种projection 显示效果也不错&#xff0c;根据tiles grid可以看到&#xff0c;还是web_mercator的格网&#xff0c;基于图片做了一定的拉伸形变&#xff0c;想要加载4326的切片格网&#xff0c;依然无法实现。 后来在网上搜索加载4326切…

【JavaWeb】后端(Maven+SpringBoot+HTTP+Tomcat)

目录 一、Maven1.什么是Maven?2.Maven的作用?3.介绍4.安装5.IDEA集成Maven6.IDEA创建Maven项目7.IDEA导入Maven项目8.依赖配置9.依赖传递10.依赖范围11.生命周期 二、SpringBoot1.Spring2.SpringBoot3.SpringBootWeb快速入门 二、HTTP1.HTTP-概述2.HTTP-请求协议3.HTTP-响应协…

【转行互联网】转行互联网必看答疑

课程 追忆寻梦-转行互联网必备知识 https://edu.csdn.net/course/detail/31180 2023年&#xff0c;迟来的编程私教服务 https://bbs.csdn.net/topics/613231237 优先 必读文章 初学者&#xff0c;打算改行学编程&#xff0c;怎么学习java&#xff1f;求指教。https://bb…

如何抓住IT行业最后的红利?网络安全为什么是风口行业?

前言 “没有网络安全就没有国家安全”。当前&#xff0c;网络安全已被提升到国家战略的高度&#xff0c;成为影响国家安全、社会稳定至关重要的因素之一。 网络安全行业特点 1、就业薪资非常高&#xff0c;涨薪快 2021年猎聘网发布网络安全行业就业薪资行业最高人均33.77万…

C语言指针及数组的运行原理

C语言指针及数组的运行原理 文章目录 C语言指针及数组的运行原理一. 指针&#xff08;汇编角度&#xff09;二. 数组&#xff08;汇编角度&#xff09;2.1 数组的定义2.2 指针与数组结合 三. 指令解释参考3.1 nop3.2 leave3.3 ret 这里涉及汇编&#xff0c;虚拟机这边采用的是6…

如何在 Google Cloud 上部署 EMQX 企业版

Google Cloud 的 IoT Core 产品将于 2023 年 8 月 16 日停止服务&#xff0c;随着这一日期的临近&#xff0c;许多用户正在为他们现有的物联网业务寻找新的解决方案&#xff0c;而 EMQX 企业版是实现这一目标的理想选择。 EMQX 企业版是一款大规模分布式 MQTT 消息服务平台&am…

【设计模式】深入浅出--外观模式

文章目录 前言一、外观模式介绍二、案例场景三、外观模式优缺点四、外观模式应用场景总结 前言 不知道大家有没有比较过自己泡茶和去茶馆喝茶的区别&#xff0c;如果是自己泡茶需要自行准备茶叶、茶具和开水&#xff0c;而去茶馆喝茶&#xff0c;最简单的方式就是跟茶馆服务员…

高效的配置文件读取工具支持properties和yaml

JefConfig 前言 日常工作中不知道到大家有没有遇到以下几种情况&#xff1a; 1、在程序启动时需要加载配置文件&#xff0c;但是发现程序只能从固定位置读取配置文件。 2、程序在集成了spring框架后&#xff0c;想从配置文件中获取某个配置&#xff0c;但是发现当前程序并未交…

并查集原理及代码实现

并查集 首先要明确的是并查集是森林。由多棵树组成。 并查集 &#xff08;英文&#xff1a;Disjoint-set data structure&#xff0c;直译为不交集数据结构&#xff09;&#xff0c;用于处理一些 不交集 &#xff08;Disjoint sets&#xff0c;一系列没有重复元素的集合&…

android framework-SystemServer进程

SystemServer进程信息 一、SystemServer整体时序图 涉及源码路径&#xff1a; android-10.0.0_r41\frameworks\base\core\java\com\android\internal\os\ZygoteInit.java android-10.0.0_r41\frameworks\base\core\java\com\android\internal\os\Zygote.java android-10.0.0_r4…

JAVAWeb07-WEB 开发通信协议-HTTP 协议-关联篇

1. 概述 1.1 官方文档及示例说明 1.1.1 请求头 1.1.2 响应头 1.1.3 HTTP 响应状态码 HTTP状态码 当浏览者访问一个网页时&#xff0c;浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前&#xff0c;此网页所在的服务器会返回一个包含HTTP状态码的信息头&a…

leetcode 1372. Longest ZigZag Path in a Binary Tree(二叉树中最长的之字形路径)

找出最长的之字型路径长度。 可以选择从二叉树的任意一个节点出发。 路径长度为路径中的节点数-1. 思路&#xff1a; 符合DFS的特征。 方向是左右交替的&#xff0c;可以定义0&#xff0c;1两个方向。 如果当前方向是左&#xff0c;下一方向就是右&#xff0c;反之亦然。每次…

FinClip|小程序云开发的那点事儿

在开发一个小程序时&#xff0c;除了考虑界面功能逻辑外&#xff0c;还需要后端的数据支持&#xff0c;开发者需要提前考虑服务器、存储和数据库等相关需求的支持能力&#xff0c;此外还可能需要花费时间精力在部署应用、和依赖服务的建设上。 因此&#xff0c;微信小程序为了…

dolphinscheduler3.1.3版本代码编译运行方法

说明 该文档适用于dolphinscheduler 3.1.3-release版本。 一 环境准备 需要使用的环境包括JDK1.8&#xff0c;以及Maven 3.6以上的版本&#xff0c;这里使用低于3.6版本的Maven也可以调试运行&#xff0c;不过在打包的时候会有报错&#xff0c;最好使用高版本的maven。 二 …