公钥算法

RSA公钥私钥原理及作用

隐身守侯 提交于 2019-11-30 22:33:23
RSA算法广泛应用与加密与认证两个领域 1.加密(保证数据安全性) 使用公钥加密,需使用私钥解密。 这种广泛应用在保证数据的安全性的方面,用户将自己的公钥广播出去,所有人给该用户发数据时使用该公钥加密,但是只有该用户可以使用自己的私钥解密,保证了数据的安全性。 2.认证(用于身份判断) 使用私钥签名,需使用公钥验证签名。 用户同样将自己的公钥广播出去,给别人发送数据时,使用私钥加密,在这里,我们更乐意称它为签名,然后别人用公钥验证签名,如果解密成功,则可以判断对方的身份。 总结:(摘抄自:https://www.cnblogs.com/scofi/p/6617394.html)  公钥与私钥使用场景:  (1)私钥用来进行解密和签名,是给自己用的。  (2)公钥由本人公开,用于加密和验证签名,是给别人用的。 (3)当该用户发送文件时,用私钥签名,别人用他给的公钥验证签名,可以保证该信息是由他发送的。当该用户接受文件时,别人用他的公钥加密,他用私钥解密,可以保证该信息只能由他接收到。 参考资料:https://www.cnblogs.com/scofi/p/6617394.html ———————————————— 版权声明:本文为CSDN博主「lijinshanba」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https:/

RSA非对称加密——前台加密后台解密

三世轮回 提交于 2019-11-30 20:56:35
写在前面 项目安全测试需要将登录功能修改, AES加密不符合要求, 现改为RSA非对称加密.(将登录密码加密后传给后台, 后台解密后再进行一系列的校验) 步骤及关键代码 1.rsasecurity.js 1 (function ($w) { 2 3 if (typeof $w.RSAUtils === 'undefined') 4 var RSAUtils = $w.RSAUtils = {}; 5 6 var biRadixBase = 2; 7 var biRadixBits = 16; 8 var bitsPerDigit = biRadixBits; 9 var biRadix = 1 << 16; 10 var biHalfRadix = biRadix >>> 1; 11 var biRadixSquared = biRadix * biRadix; 12 var maxDigitVal = biRadix - 1; 13 var maxInteger = 9999999999999998; 14 15 16 var maxDigits; 17 var ZERO_ARRAY; 18 var bigZero, bigOne; 19 20 var BigInt = $w.BigInt = function (flag) { 21 if (typeof flag ==

HTTPS工作原理以及Android中如何防止抓包

我与影子孤独终老i 提交于 2019-11-30 13:15:32
1. HTTPS的定义 说道HTTPS,不得不提HTTP,HTTP最大的缺陷就是明文传输,数据传输过程中很容易被篡改,所以美国网景公司提出来HTTPS协议,相对HTTP,HTTPS多了一个S,这个S,其实就是SSL/TSL,SSL全称安全套接字层,TSL1.0(传输层安全协议)是SSL3.0的升级版,是用于服务器和客户端加密通信的,所以可以认为两者是同一种协议,SSL因为自身的不安全性,在Android8.0已经被弃用了,以上可以看出HTTPS=HTTP+SSL/TLS 2. 工作原理 1.HTTPS发起SSL连接,链接到服务器的443端口 2.服务器向客户端发送公钥和数字证书 3.客户端通过随机算法生成私钥,然后通过服务器公钥对该私钥加密,生成对称密钥 4.客户端向服务器发送对称密钥 5.服务器通过对称密钥对数据进行加密 6.客户端通过对称密钥来对数据解密 那问题来了,在第二步,如果有好事者截获了服务器对客户端发送的公钥,然后伪造成服务器与客户端通信,这可如何是好呢,如何判断该公钥是合法的呢,数字证书就排上用场了 3.数字证书 数字证书是由CA签发,全世界权威的CA一共100多个,数字证书里包含一对非对称密钥,公钥和私钥以及颁发给、颁发者等信息,里面的公钥对服务器端传输的公钥进行加密,生成密文,然后由客户端的数字证书里的私钥进行解密,从而获得服务器的公钥并确认该公钥是合法的

【转】GnuPG使用介绍

自作多情 提交于 2019-11-30 06:20:17
一、什么是 GPG 要了解什么是 GPG,就要先了解 PGP 。 1991 年,程序员 Phil Zimmermann 为了避开政府监视,开发了加密软件 PGP。这个软件非常好用,迅速流传开来,成了许多程序员的必备工具。但是,它是商业软件,不能自由使用。所以,自由软件基金会决定,开发一个 PGP 的替代品,取名为 GnuPG。这就是 GPG 的由来。 GPG 有许多用途,本文主要介绍文件加密。至于邮件的加密,不同的邮件客户端有不同的设置,请参考 Ubuntu 网站的 介绍 。 本文的使用环境为 Linux 命令行。如果掌握了命令行, Windows 或 Mac OS 客户端,就非常容易掌握。GPG 并不难学,学会了它,从此就能轻松传递加密信息。建议读者一步步跟着教程做,对每条命令都自行测试。 二、安装 GPG 有两种安装方式。可以 下载源码 ,自己编译安装。 ./configure make make install 也可以安装编译好的二进制包。 # Debian / Ubuntu 环境 sudo apt-get install gnupg # Fedora 环境 yum install gnupg 安装完成后,键入下面的命令: gpg --help 如果屏幕显示 GPG 的帮助,就表示安装成功。 三、生成密钥 安装成功后,使用 gen-ken 参数生成自己的密钥。 gpg -

最基础的Nginx教学

天涯浪子 提交于 2019-11-30 05:23:10
文章原创于公众号:程序猿周先森。本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号。 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。HTTP协议,即超文本传输协议是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。HTTP协议是用于从万维网服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。众所周知,HTTP是一个无状态的应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。在Internet中所有的传输都是通过TCP/IP进行的。HTTP协议作为TCP/IP模型中应用层的协议也不例外。HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。如下图所示: 而大家都很清楚TCP/IP共分为四层:应用层、传输层、网络层、数据链路层; 为什么TCP/IP要分成四层呢?意思何在呢?其实主要原因是由于分层能够解耦,动态替换层内协议,不同层各司其责: 应用层:向用户提供应用服务时的通讯活动(ftp

数据安全传输中的非对称加密、信息摘要、HMAC

旧巷老猫 提交于 2019-11-29 21:51:30
一 最近对接了很多第三方支付产品,由于涉及到敏感信息及金钱等非常重要的数据,数据传输安全就显得尤为重要。那么实际是怎样处理的呢? 一般的数据传输流程大概如下: 1.调用支付接口时,将数据信息+商户私钥生成签名,将数据和签名一同发给支付机构 2.支付机构方留有商户的公钥,收到数据时,用商户公钥+数据信息+签名来验证数据的身份和一致性 3.异步通知到商户时,支付机构将数据信息和签名信息一同付给商户服务器 4.商户方留有支付机构的公钥,收到数据时,用支付机构公钥+数据信息+签名来验证数据的身份和一致性 二 下面自己写了一个demo,希望能对各位同学有所帮助: 1.工具类 package com.cyq.util; import javax.crypto.Mac; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; import java.security.MessageDigest; /** * @author cyq */ public class HmacDigestUtil { static char[] hexDigits ={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; private static

Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)

允我心安 提交于 2019-11-29 21:27:35
Hadoop在处理海量数据分析方面具有独天优势。今天花时间在自己的Linux上搭建了伪分布模式,期间经历很多曲折,现在将经验总结如下。 首先,了解Hadoop的三种安装模式: 1. 单机模式. 单机模式是Hadoop的默认模。当配置文件为空时,Hadoop完全运行在本地。因为不需要与其他节点交互,单机模式就不使用HDFS,也不加载任何Hadoop的守护进程。该模式主要用于开发调试MapReduce程序的应用逻辑。 2. 伪分布模式. Hadoop守护进程运行在本地机器上,模拟一个小规模的的集群。该模式在单机模式之上增加了代码调试功能,允许你检查内存使用情况,HDFS输入输出,以及其他的守护进程交互。 3. 全分布模式. Hadoop守护进程运行在一个集群上。 参考资料: 1. Ubuntu11.10下安装Hadoop1.0.0(单机伪分布式) 2. 在Ubuntu上安装Hadoop 3. Ubuntu 12.04搭建hadoop单机版环境 4. Ubuntu下安装及配置单点hadoop 5. Ubuntu上搭建Hadoop环境(单机模式+伪分布模式) 6. Hadoop的快速入门之 Ubuntu上搭建Hadoop环境(单机模式+伪分布模式) 本人极力推荐 5 和 6 ,这两种教程从简到难,步骤详细,且有运行算例。下面我就将自己的安装过程大致回顾一下,为省时间,很多文字粘贴子参考资料

PHP的学习--RSA加密解密

馋奶兔 提交于 2019-11-29 18:14:13
PHP服务端与客户端交互或者提供开放API时,通常需要对敏感的数据进行加密,这时候rsa非对称加密就能派上用处了。 举个通俗易懂的例子,假设我们再登录一个网站,发送账号和密码,请求被拦截了。 密码没加密,那攻击者就直接拿到了密码,这是最搓的。 密码加密了,是不可逆加密,那攻击者只需要模拟那个请求即可登录。 密码加密了,是可逆加密,其中携带有时间等参数,后台可以根据时间等参数来判断是否有效,但因为是在前端加密,其加密方式也能在代码中找到,找到加密方式就可以得出解密方式。 但是如果我们使用非对称加密就可以避免以上问题。 非对称加密算法需要两个密钥来进行加密和解密,这两个秘钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。 工作过程如下,甲乙之间使用非对称加密的方式完成了重要信息的安全传输。 乙方生成一对密钥(公钥和私钥)并将公钥向其它方公开。 得到该公钥的甲方使用该密钥对机密信息进行加密后再发送给乙方。 乙方再用自己保存的另一把专用密钥(私钥)对加密后的信息进行解密。乙方只能用其专用密钥(私钥)解密由对应的公钥加密后的信息。 在传输过程中,即使攻击者截获了传输的密文,并得到了乙的公钥,也无法破解密文,因为只有乙的私钥才能解密密文。 同样,如果乙要回复加密信息给甲,那么需要甲先公布甲的公钥给乙用于加密,甲自己保存甲的私钥用于解密。

1.http 协议和 https 协议的原理

心已入冬 提交于 2019-11-29 14:18:53
首先,我们得知道应用层是 OSI 七层网络模型的第七层,不同类型的网络应用有不同的通信 规则,因此应用层协议是多种多样的,比如 DNS、FTP、Telnet、SMTP、HTTP、 等协议都 是用于解决其各自的一类问题。 http 通信协议的基本原理 http 协议在远程通信场景中的应用还是挺广泛的,包括现在主流的微服务架构的通信都是基 于 http 协议。由于经常使用的关系,所以大家对 http 协议的理解还是比较深刻,我这里就直 接帮大家梳理一下 http 协议的基本原理。 一次 HTTP 请求的通信流程 我们先来思考一个问题,我们在浏览器上输入一个网址后,浏览器是如何展示目标网址的内 容的?内容是从哪里来的呢? 来通过图形把这个过程画一下 DNS: (Domain Name System)服务是和 HTTP 协议一样位于应用层的协议。它提供域名 到 IP 地址之间的解析服务, 用户通常使用主机名或域名来访问对方的计算机,而不是直接通 过 IP 地址访问。因为与 IP 地址的一组纯数字相比,用字母配合数字的表示形式来指定计算 机名更符合人类的记忆习惯。 但要让计算机去理解名称,相对而言就变得困难了。因为计算机更擅长处理一长串数字。为 了解决上述的问题,DNS 服务应运而生。DNS 协议提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名的服务 HTTP 通信协议的组成

公钥加密-DES-RSA

我怕爱的太早我们不能终老 提交于 2019-11-29 11:42:36
公理 双方使用同一规则加密 --------- 密钥(对称加密算法 DES ) data encryption standard 最大问题 双方一起制定 -------- 办法:密钥交换算法,不用直接传递密钥 ------------------ 私钥(非对称加密算法 RSA ) 三位数学家 Rivest 、 Shamir 和 Adleman 互质关系 除了 1 以外,没有其他公因子 比如, 15 和 32 没有公因子 : 任意两个质数构成互质关系,比如 13 和 61 。 一个数是质数,另一个数只要不是前者的倍数,两者就构成互质关系,比如 3 和 10 。 如果两个数之中,较大的那个数是质数,则两者构成互质关系,比如 97 和 57 。 1 和任意一个自然数是都是互质关系,比如 1 和 99 。 p 是大于 1 的整数,则 p 和 p-1 构成互质关系,比如 57 和 56 。    6. p 是大于 1 的奇数,则 p 和 p-2 构成互质关系,比如 17 和 15 。 欧拉函数 任意正整数 n ,请问在 <= n 的正整数之中,有多少个与 n 构成互质关系? ----- 欧拉函数 Φ(n) = n * (1 - 1/p1)*(1 - 1/p2)*(1 - 1/p3)*(1 - 1/p4) Φ(1323) = Φ(3^3 * 7^2) = 1323 * ( 1 - 1/3 )(