RSA加密算法是一种非对称加密算法。在公开密钥加密电子商业中RSA被广泛使用。

公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。

RSA加密、解密   1977年

RSA算法机制

Step1、公钥生成

N=P*Q          Phi(n)=(P-1)*(Q-1)

(为了生成公钥我们选择两个素数p与q)

eg、P=53,Q=59

N=P*Q=53*59=3127;

在公钥中我们还需要一个指数e(e必须是整数、n不能被e整除、e必须介于1与phi(n)之间)

设e=3;

公钥由N与e组成

Step2、秘钥生成

Phi(n)=(P-1)(Q-1)

Phi(n)=(P-1)(Q-1)=52*58=3016;

计算秘钥

d=(2*phi(n)+1)/e

d=(2*3016+1)/3=2011

Step3、公钥加密数据

加密数据需要用功能公钥

公钥由N与e组成(3127和3)

用秘钥解密信息

eg、我们来加密一个很简单的词HI

H  8   I   9   (ABCDEFGHI)

89   HI

c为密文

c=89e mod N

即:893 mod 3127=    1394

Step3、私密解密数据

公钥不能用来解密  只有原先执行私钥生成的人才拥有秘钥

c密文  d秘钥  N公钥

解密内容为       cd   mod N

即:13942011  mod 3127=89

RSA介绍的更多相关文章

  1. 网络安全——数据的加密与签名,RSA介绍

    一. 密码概述 发送者对明文进行加密然后生成密文,接受者再对密文解密得到明文的过程. 现在使用的所有加密算法都是公开的!但是密钥肯定不是公开的. 1 散列(哈希)函数 通常有MD5.SHA1.SHA2 ...

  2. When I see you again(加密原理介绍,代码实现DES、AES、RSA、Base64、MD5)

    关于网络安全的数据加密部分,本来打算总结一篇博客搞定,没想到东西太多,这已是第三篇了,而且这篇写了多次,熬了多次夜,真是again and again.起个名字:数据加密三部曲,前两部链接如下: 整体 ...

  3. 加密原理介绍,代码实现DES、AES、RSA、Base64、MD5

    阅读目录 github下载地址 一.DES对称加密 二.AES对称加密 三.RSA非对称加密 四.实际使用 五.关于Padding 关于电脑终端Openssl加密解密命令 关于网络安全的数据加密部分, ...

  4. 算法系列2《RSA》

    1. RSA介绍 RSA公钥加密算法是1977年由Ron Rivest.Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的.RSA取名来自开发他们三者的名字.RSA是目前最有影响 ...

  5. 浅谈IM软件业务知识——非对称加密,RSA算法,数字签名,公钥,私钥

    概述 首先了解一下相关概念:RSA算法:1977年由Ron Rivest.Adi Shamirh和LenAdleman发明的.RSA就是取自他们三个人的名字. 算法基于一个数论:将两个大素数相乘很ea ...

  6. openssl几个加密算法使用介绍

    1.openssl简介 1)openssl概述 OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法.常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用. ...

  7. Python3 实现 JS 中 RSA 加密的 NoPadding 模式

    前因后果之哗啦啦废话连篇: 这几天本人在 Python 做某网站登陆的时候,发现其登陆时用户名和密码被加密了 F12 仔细看了一下,发现是调用了一个 js 的 rsa 加密库,页面 dom 中有 rs ...

  8. erlang的RSA签名与验签

    1.RSA介绍 RSA是目前最有影响力的公钥加密算法,该算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对 其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,即公钥,而 ...

  9. CTF加密题型解析:RSA算法的CTF解法之一

    RSA介绍 根据加密原理,可以将大部分的加密算法分为两大类:对称加密算法和非对称加密算法.对称加密算法的加密和解密采用的是同一套算法规则.而非对称加密算法加密时用的是公钥(公开给所有人),解密时用的是 ...

随机推荐

  1. package.json文件配置详解

    package.json 是npm init命令初始化后,在项目的根目录下自动生成的配置文件,它定义了这个项目的配置信息以及所需要的各种模块,npm install根据这个命令,自动下载所需的模块.p ...

  2. mysql 创建用户, 分配权限, 删除用户

    通过create user 命令来创建用户, 有两种方式:(只介绍通过 create user 命令, 直接往user表中插入数据的方式,这里就不说了) 创建用户的同时, 指定用户可登录的主机和密码 ...

  3. 【Linux命令】at、crontab定时任务

    crontab定时任务(周期性) 一.简介 通过crontab命令可以在固定的间隔执行系统指令或shell脚本 二.crontab配置文件: Linux下的任务调度分为两类:系统任务调度和用户任务调度 ...

  4. Missing artifact com.lowagie:itextasian:jar:2.1.7

    在maven中添加iTextAsian支持   导入maven项目 发现pom.xml文件 中这个依赖报错:Missing artifact com.lowagie:itextasian:jar:2. ...

  5. 一些 Java 和 Android 的参考资料

    1. .net程序员转战android第三篇---登录模块之静态登录 2. .net程序员转战android第二篇---牛刀小试 3. .net程序员转战android第一篇---环境部署 4. 一些 ...

  6. ssl与ssh

    openssl genrsa -out private_key.pem 1024 ssh-keygen -t rsa -C zzf073@163.com ssl是安全会话协商机制: ssh是安全访问机 ...

  7. js和C#互相调用

    快速上手 js和C#互相调用. C#调用js比较容易.JS调用C#代码,现有两种方法.老方法的缺点是只支持单页,如果切换页面,原有创建的变量就失效了.新方法没有这些问题. 老方法: Cefsharp ...

  8. mac下安装php7.2、mysql5.7、nginx环境

    本篇文章是通过homebrew安装,home brew对于Mac相当于centos 的yum一样方便简单,大家可以先去安装home brew.网上很多简单靠谱的例子,这里不写了 一.准备条件为了安装最 ...

  9. 元素增删事件DOMNodeInserted和DOMNodeRemoved

    监听元素变化的三种方法: 对于表单类型的控件,使用onchange事件最好. 使用DOMNodeInserted和DOMNodeRemoved事件 使用定时器定时检测(下策) 有时需要给一个class ...

  10. SQLi-LABS Page-2 (Adv Injections) Less23-Less26

    Less-23 GET - Error based - strip comments http://10.10.202.112/sqli/Less-23?id=1' Warning: mysql_fe ...