RSA 汇总
最近工作中遇到了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 汇总的更多相关文章
- 关于RSA汇总
写在前面 安全测试需要, 后台数据需要签名, 前台验签, 于是有了这篇hao123. 正文 jsrsasign https://github.com/kjur/jsrsasign jsrsasign使 ...
- python实现AES/DES/RSA/MD5/SM2/SM4/3DES加密算法模板汇总
都是作者累积的,且看其珍惜,大家可以尽量可以保存一下,如果转载请写好出处https://www.cnblogs.com/pythonywy 一.md5加密 1.简介 这是一种使用非常广泛的加密方式,不 ...
- RSA加密工具包
主要参考: http://www.blogjava.net/icewee/archive/2012/05/19/378570.html http://snowolf.iteye.com/ 基于以上代码 ...
- ASP.NET(C#)常用数据加密和解密方法汇总
一. 数据加密的概念 1. 基本概念 2. 基本功能 3. 加密形式 二. 数据加密的项目应用和学习 1. 媒体加密:DRM 2. 文件加密:文本 ...
- iOS、mac开源项目及库汇总
原文地址:http://blog.csdn.net/qq_26359763/article/details/51076499 iOS每日一记------------之 中级完美大整理 iOS.m ...
- Git常用操作汇总(转)
如果一个文件被删除了,可以使用切换版本号进行恢复.恢复方法: 先确定需要恢复的文件要恢复成哪一个历史版本(commit),假设那个版本号是: commit_id,那么 git checkout com ...
- Hadoop笔记——技术点汇总
目录 · 概况 · Hadoop · 云计算 · 大数据 · 数据挖掘 · 手工搭建集群 · 引言 · 配置机器名 · 调整时间 · 创建用户 · 安装JDK · 配置文件 · 启动与测试 · Clo ...
- MVC 网站部署常见问题汇总
一:TGIShare项目是一个MVC5的网站程序,部署在了IIS上,使用的Windows验证方式,并在本机设置了计划任务定时调用某个地址执行命令.问题汇总如下: 1.Window Server 200 ...
- Crypto++入门学习笔记(DES、AES、RSA、SHA-256)
最先附上 下载地址 背景(只是个人感想,技术上不对后面的内容构成知识性障碍,可以skip): 最近,基于某些原因和需要,笔者需要去了解一下Crypto++库,然后对一些数据进行一些加密解密的操作. 笔 ...
随机推荐
- jquery第一篇
1 jquery是什么 <1> jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team. <2>jQuery是继 ...
- CentOS下的Mysql的安装和使用
1.使用安装命令 :yum -y install mysql mysql-server mysql-devel 安装完成却发现Myserver安装缺失,在网上找原因,原来是因为CentOS 7上把My ...
- Codechef August Challenge 2018 : Coordinate Compression
传送门 外边二分,里面拿线段树维护贪心就行了. #include<cstdio> #include<vector> #include<cstring> #inclu ...
- ES6 promise学习
Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大. 1.promise是一构造函数,既然是构造函数,那么我们就可以用 new Promise()得到一个p ...
- Python练手例子(3)
13.打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数",因为153=1 ...
- WIN10远程计算机不支持所需的FIPS安全级别解决
win10系统的电脑在远程xp系统或者其他系统的电脑时,提示错误,远程计算机可能不支持所需的FIPS安全级别,如果出现一以下2种错误,可以解决! 1 第一步:打开win10下的,控制面板 2 第二 ...
- 电子产品使用感受之——为什么我那么喜欢2015年的11.6寸MacBook Air?
2018年Mac笔记本产品线得到了一次更新,Mac book Pro, MacBook Air更新后的Mac 产品线变得更加让人摸不着头脑,价格昂贵不说,产品分类细化到如此程度,让一个选择困难症的消费 ...
- vue加载流程
首先加载main.js,main.js中new一个vue实例,这个实例中会有一个id="app"映射到app.vue,启动时候首页映射到index.html,其中<div i ...
- linux基础命令--groupadd 创建新的群组
描述 groupadd命令用于创建一个新的群组. groupadd命令默认会根据命令行指定的值和系统下的/etc/login.defs文件定义的值去修改系统下的/etc/group和/etc/gsha ...
- pandas(二)
层级索引: index=[('a',2010),('b',2011),('c',2010'),('a',2012),('e',2010),('f',2011)] age=[18,17,18,16,18 ...