最近工作中遇到了RSA,这个,以前只是粗略的看了一下,结果,实际使用的时候,各种眼花缭乱啊。现在整理一下RSA有哪些相关知识。

1. RSA算法本身。算法本身的内容实际上是在pkcs#1的标准里面说明的。 在我博客里面记录:https://www.cnblogs.com/yxzamy/p/8961561.html

2. RSA具体使用的标准:PKCS。在我博客里面记录: https://www.cnblogs.com/yxzamy/p/9001179.html

3. RSA在编程语言中的使用。

RSA Laboratories' Public Key Cryptography Standard (PKCS)

RSA整体流程,以及对应的概念。

1. 首先需要密钥,包括公钥和私钥。

这部分牵扯到算法的概念,密钥产生过程,密钥结构,具体标准这pkcs#1中定义,实际存储结构,有多种,在pkcs#7和pkcs#8中定义。

这里存储结构都是一样的,但是,实际存储的时候还是分多种文件格式的,比如pem或者der,一个用文本存储,一个二进制存储,但是,如果读取到可读到结构之后,是一样的。也就是,同样的数据结构,但是,文件结构是不一样的。

相关概念有:

公钥/私钥/module/密钥长度

密钥文件结构:pem/der/TLV

密钥存储结构结构:pem/der/ASN.1

2. 加密解密过程

首先,RSA算法中,是针对数字进行加密的,所有,首先所有字符串加密之前要转化成数字,这个过程中标准中被称为encoding,并不是简单的取其二进制编码,而是要添加一些信息的

pkcs#1中有两种算法:RSAES-OAEP  RSAES-PKCS1-v1_5

加密解密的信息是有长度限制的 ,message最大长度分别是mLen <= k - 2hLen - 2,mLen <= k - 11,可是只密钥的模长度。hLen是hash操作的长度,所以,RSAES-OAEP在encoding的时候,是与hash函数有关的。

输出数据的长度都是K,也就是一个定长数据。

之后,整理好了的字符串,取二进制编码,利用RSA算法加密,之后,加密后的二进制编码转化成字符串返回。

整个定义都在pkcs#1中

RSA 汇总的更多相关文章

  1. 关于RSA汇总

    写在前面 安全测试需要, 后台数据需要签名, 前台验签, 于是有了这篇hao123. 正文 jsrsasign https://github.com/kjur/jsrsasign jsrsasign使 ...

  2. python实现AES/DES/RSA/MD5/SM2/SM4/3DES加密算法模板汇总

    都是作者累积的,且看其珍惜,大家可以尽量可以保存一下,如果转载请写好出处https://www.cnblogs.com/pythonywy 一.md5加密 1.简介 这是一种使用非常广泛的加密方式,不 ...

  3. RSA加密工具包

    主要参考: http://www.blogjava.net/icewee/archive/2012/05/19/378570.html http://snowolf.iteye.com/ 基于以上代码 ...

  4. ASP.NET(C#)常用数据加密和解密方法汇总

    一.            数据加密的概念 1.  基本概念 2.  基本功能 3.  加密形式 二.            数据加密的项目应用和学习 1.  媒体加密:DRM 2.  文件加密:文本 ...

  5. iOS、mac开源项目及库汇总

    原文地址:http://blog.csdn.net/qq_26359763/article/details/51076499    iOS每日一记------------之 中级完美大整理 iOS.m ...

  6. Git常用操作汇总(转)

    如果一个文件被删除了,可以使用切换版本号进行恢复.恢复方法: 先确定需要恢复的文件要恢复成哪一个历史版本(commit),假设那个版本号是: commit_id,那么 git checkout com ...

  7. Hadoop笔记——技术点汇总

    目录 · 概况 · Hadoop · 云计算 · 大数据 · 数据挖掘 · 手工搭建集群 · 引言 · 配置机器名 · 调整时间 · 创建用户 · 安装JDK · 配置文件 · 启动与测试 · Clo ...

  8. MVC 网站部署常见问题汇总

    一:TGIShare项目是一个MVC5的网站程序,部署在了IIS上,使用的Windows验证方式,并在本机设置了计划任务定时调用某个地址执行命令.问题汇总如下: 1.Window Server 200 ...

  9. Crypto++入门学习笔记(DES、AES、RSA、SHA-256)

    最先附上 下载地址 背景(只是个人感想,技术上不对后面的内容构成知识性障碍,可以skip): 最近,基于某些原因和需要,笔者需要去了解一下Crypto++库,然后对一些数据进行一些加密解密的操作. 笔 ...

随机推荐

  1. centos6.5安装nginx+python+uwsgi+django

    nginx+uwsgi+django环境部署及测试 默认系统自带的python2.6.6 第一步(安装setuptools) wget https://pypi.python.org/packages ...

  2. 自定义MVC实现登录案例

    MVC框架: MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离 ...

  3. Matrix [POJ3685] [二分套二分]

    Description 有一个N阶方阵 第i行,j列的值Aij =i2 + 100000 × i + j2 - 100000 × j + i × j,需要找出这个方阵的第M小值. Input 第一行输 ...

  4. container

    容器是轻量级的操作系统级虚拟化,可以让我们在一个资源隔离的进程中运行应用及其依赖项.运行应用程序所必需的组件都将打包成一个镜像并可以复用.执行镜像时,它运行在一个隔离环境中,并且不会共享宿主机的内存. ...

  5. ant design select placeholder不生效原因

    当select的value绑定一个state默认值时,如果默认值是''或null时,placeholder不生效 解决方案:默认值设为undefined

  6. CSS3 三次贝塞尔曲线(cubic-bezier)

    例子:transition:all 1s cubic-bezier(.21,.2,.65,.1) 最近在看animation模块,其中animation-timing-function 和 trans ...

  7. Codeforces 1154D - Walking Robot - [贪心]

    题目链接:https://codeforces.com/contest/1154/problem/D 题解: 贪心思路,没有太阳的时候,优先用可充电电池走,万不得已才用普通电池走.有太阳的时候,如果可 ...

  8. ORACLE中dba,user,v$等开头的常用表和视图

    一.Oracle表明细及说明1.dba_开头表    dba_users           数据库用户信息    dba_segments    表段信息    dba_extents        ...

  9. [strongswan] strongswan是如何实现与xfrm之间的trap机制的

    目录 strongswan与xfrm之间的trap机制 0. 1. 前言 2. 描述 2.1 none 2.2 trap 3. 实验与过程 3.1 trap实验 3.2 none实验 4 背景知识 5 ...

  10. Jmeter压测基础(二)——Badboy功能、Jmeter参数化、检查点、集合点、动态关联、图形监控

    Badboy 以下稍微介绍一下badboy的部分功能: 1.Record;play(badboy打开后默认是recording状态) 2.Assertion(检查点/断言) 3.Variable: t ...