最近工作中遇到了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. 【C语言程序】今天是祖国母亲的生日,特意编写一个小程序,为祖国母亲庆生~

    #include <stdio.h> #define N 80 int main(int argc, char *argv[]) { char a[N]; printf("Hel ...

  2. Angularjs判断页面是否已经渲染结束(动态给标签长度)

    相信大家都会碰到这样的问题.页面循环li.但是因为个数不知道.没有办法给li设置固定宽度.那么这时就需要动态计算数据长度并动态改变li的宽度 <!--周边信息--> <div cla ...

  3. JavaScript浏览器解析原理

    首先,JavaScript的特点是: 1. 跨平台 可以再不同的操作系统上运行. 2. 弱类型 与之相对的是强类型 强类型:在定义变量的时候,需要将变量的数据类型表明.例如:Java 弱类型:定义变量 ...

  4. Codechef July Challenge 2018 : Picking Fruit for Chefs

    传送门 好久没写题解了,就过来水两篇. 对于每一个人,考虑一个序列$A$,$A_I$表示当k取值为 i 时的答案. 如果说有两个人,我们可以把$(A+B)^k$二项式展开,这样就发现把两个人合并起来的 ...

  5. [LeetCode] Largest Sum of Averages 最大的平均数之和

    We partition a row of numbers A into at most K adjacent (non-empty) groups, then our score is the su ...

  6. 23 创建ArcMap启动日志

    在ArcMap的启动过程中,我们可以看到软件的界面上分别会显示[初始化许可……].[初始化应用……].[加载文档……]字样,当ArcMap打开出现问题时,我们可以根据以上文字来判断出现错误的情况,还有 ...

  7. 一般处理程序(ashx)的使用

    ASP.NET 中发送请求的页面代码如下: <head runat="server"> <title></title> <script s ...

  8. 架构.Net 到 Linux

    nginx + .net core + mysql + radis + rabbitmq

  9. python自动化打开网页

    from selenium.webdriver.firefox.options import Options as FOptionsfrom selenium.webdriver.chrome.opt ...

  10. TestNG Suite 运行出现中文乱码如何解决

    场景: 用TestNG框架运行测试类,控制台视图输出出现中文乱码. 解决方案: 1.eclipse属性>workspace>other>utf-8 2.修改eclipse.ini 文 ...