公钥加密

CentOS 7的远程访问及控制

时光总嘲笑我的痴心妄想 提交于 2019-11-26 12:12:52
在实际生产环境中,不可能一直在服务器本地对服务器进行相应的管理,大多数企业服务器都是通过远程登录的方式进行管理的。当需要从一个工作站管理数以百计的服务器主机时,远程维护的方式将更占优势。 SSH 简介 SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程复制等功能。SSH协议对通信双方的数据传输进行加密处理,其中包括用户登录时输入的用户口令。比以往的Telnet(远程登录)、RSH(远程执行命令)等传统的方式相比,SSH协议提供了更好的安全性。 一、配置OpenSSH服务端 OpenSSH是实现SSH协议的开源软件项目。在CentOS 7.3系统中。OpenSSH服务器由openssh、openssh-server等软件包提供(默认已安装),并已将sshd添加为标准的系统服务。 1.服务监听选项 sshd服务使用的默认端口号为22,必要时建议修改此端口号,并指定监听服务的具体IP地址,以提高在网络中的隐蔽性。除此之外,SSH协议的版本选用v2比v1的安全性要更好,禁用DNS反向解析可以提高服务器的响应速度。 [root@localhost ~]# vim /etc/ssh/sshd_config //修改sshd服务的主配置文件 ………… //省略部分内容 Port 22 //监听端口为22 ListenAddress 0.0.0.0 /

第三方支付:微信公众号接入支付宝支付开发

点点圈 提交于 2019-11-26 08:31:52
第三方支付:微信公众号接入支付宝支付开发 引言 这篇文章使用一些简单的代码例子来解释微信接入支付宝支付功能的操作步骤,即使新手也可以轻松参透的。 第三方支付是指具备一定实力和信誉保障的独立机构,采用与各大银行签约的方式,通过与银行支付结算系统接口对接而促成交易双方进行交易的网络支付模式。 使用第三方支付,我们只要申请一个帐号平台即可以支持所以银行卡信用卡支付功能,具体支付功能由第三方支付平台来完成。本文所要介绍的是支付宝手机网站支付功能,而且是微信端的。 支付宝接入说难也难,说易也容易,正应正了那句话,难了不会会了不难。 先上个支付宝官方给出的交易流程图: 说明: 商户H5网站先向自己的后台系统发送请求,由后台系统向支付宝系统发送请求,请求生成订单数据,当商户系统收到支付宝返回的订单数据后(注意支付宝是以form表单的形势返回订单数据的字符串),我们后台系统将数据返回给前端,前端页面通过Form表单的形式请求到支付宝,支付宝验证签名后进入支付宝路由页面,如果用户手机已经安装支付宝客户端,则它会尝试唤起支付宝客户端,如果没安装客户端,则路由页面会以web形势打开付款页面,成功后会弹出输入密码框供用户输入。 输入正确密码后,支付宝根据商户在手机网站支付API中传入的前台回跳地址return_url自动跳转回商户页面,同时在URL请求中以Query String的形式附带上支付结果参数

手把手教你接入支付宝支付

心已入冬 提交于 2019-11-26 08:31:19
前一久做了支付宝支付,分享一下接入的详细步骤吧,移动端和服务端demo源码已上传至GitHub,要下载的移步至文章末尾。 先给出支付宝官方文档: https://docs.open.alipay.com/204/105051/ 适用场景 在App内集成支付宝支付。APP调用支付宝提供的SDK,SDK再调用支付宝APP内的支付模块。如果用户已安装支付宝APP,商家APP会跳转到支付宝中完成支付,支付完后跳回到商家APP内。如果用户没有安装支付宝APP,商家APP内会调起支付宝网页支付收银台,用户登录支付宝账户,支付完后展示支付结果。 接入 1. 创建应用并获取APPID 地址: https://open.alipay.com/platform/appManage.htm#/apps 创建应用后即生成应用的标识APPID 创建指南: https://docs.open.alipay.com/200/105310/ 2. 添加App支付功能 从我的应用列表点击应用对应的查看详情按钮进入 添加完成后,若应用状态为开发中状态,只能在沙箱环境下进行调试。应用申请上线后,会同时申请此列表的功能,接口即生效。 注:手机端支付可以添加 APP支付 和手机网站支付。APP支付使用原生开发,调用支付宝支付SDK。手机网站支付是在网页中调用支付宝,所以使用h5+mui方式开发APP可使用此功能

密码学技术在区块链系统中的应用

爱⌒轻易说出口 提交于 2019-11-26 03:22:56
密码学技术是区块链数据核心技术(P2P网络协议、共识机制、密码学技术、账户与存储模型)中核心的技术点,区块链主要用到的密码算法有哈希算法和加密算法,加密又包括对称性加密和非对称性加密两个概念,区块链系统里面一般常用到的是非对称加密。 本文首先把密码学相关的知识说明一下,并附有部分JAVA代码,然后用比特币作为例子说明一下在区块链系统中的使用。 【算法说明】 (一)哈希算法 哈希算法是区块链中用的最多的一种算法,它被广泛的使用在构建区块和确认交易的完整性上。 它是一类数学函数算法,又被称为散列算法,需具备三个基本特性: 1、其输入可为任意大小的字符串 2、它产生固定大小的输出 3、它能进行有效计算,也就是能在合理的时间内就能算出输出值 如果要求哈希算法达到密码学安全的话,我们还要求它具备以下三个附加特性: 1、碰撞阻力: 是指对于两个不同的输入,必须产生两个不同的输出。如果对于两个不同的输入产生了相同的输出,那么就说明不具备碰撞阻力,或是弱碰撞阻力。 2、隐秘性: 也被称为不可逆性,是指 y = HASH(x)中,通过输入值x,可以计算出输出值y,但是无法通过y值去反推计算出x值。为了保证不可逆,就得让x的取值来自一个非常广泛的集合,使之很难通过计算反推出x值。 3、谜题友好: 这个特性可以理解为,谜题是公平友好的,例如算法中 y = HASH(x),如果已知y值,想去得到x值

让数据传输更安全

☆樱花仙子☆ 提交于 2019-11-26 02:37:59
在阅读RabbitMQ数据传输安全的章节时,提到了ssl协议,用了很大篇幅介绍使用openssl生成一些列秘钥和证书,如果没有相关基础,会不太好理解,本篇就来总结下数据安全相关的概念以及浏览器HTTPS的应用。 通过介绍,你会了解到: 数据安全的基本概念 加密算法 数字证书和证书机构 ssl和openssl基本介绍 https应用 数据安全的基本概念 数据要在网络中传输,就会存在安全问题,因为任何人都可以获得你发送的数据包,从而获得你的数据,需要对数据进行加密,对于数据发送者,也可能被伪造,需要对双方身份做验证,另外,数据的完整性也需要考虑。 总结下安全的定义: 保密性:只有自己和允许的人能看到或看懂数据; 完整性:数据没有被破坏或篡改; 可信任性:确保消息是对方发的,不是伪造者发的; 加密算法 加密是保证数据安全的常用手段,已经有很多现成的加密算法了,这些算法都是经过验证和考验的,想要破解非常困难,所以,一般不需要设计算法,可以直接使用,这里只会介绍常见算法的基本概念和特性,不涉及算法实现细节。 散列 散列就是hash算法,把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值,常见的hash算法有MD5和SHA。 MD5即Message-Digest Algorithm 5,称为信息-摘要算法5,主要用于确保信息传输的完整性,输入是不定长度信息

构成信息安全技术体系的三类基本算法

孤人 提交于 2019-11-26 02:10:11
  信息加密技术经过多年的发展,由一些基本算法组合形成了许多成熟的应用,如数字签名,安全证书,HTTPS,以及最近大热的数字加密货币,区块链等。这些看似种类繁多的应用,其实都由三类基本的算法通过不同的组合来实现,这三类算法分别是: 数据摘要(在很多场合也被称作哈希运算),对称加密,非对称加密。本文抛开这三类算法在不同实现方案中的差异,抽象出各类算法的共性,提纲挈领地描绘出三类算法在加密体系中的应用场景,让开发者能在短时间内对信息加密体系有个全局的认识,并能将这三类算法应用在实际的需求场景中,希望本文能成为设计信息加密应用的简要手册。   阅读建议:每类算法都以伪代码给出函数声明,不代表特定算法, 比如函数digest代表了在实际使用中的MD5, SHA1, RIPEMD160等实现了数据摘要功能的算法,读者在阅读过程中不要急于去考虑这些函数的实现,而应该去领会算法的特点和完成的功能。这些算法几乎在所有主流的编程语言库中都有具体实现,实在有很少的场合需要自己再去实现。对于有研究技术细节需求的读者,可以在阅读完本文后,对信息加密体系这棵树有了全局的了解,再按图索骥地去研究树叶.   下面将分别介绍这三类算法各自的特性和应用, 然后再对将这些算法组合起来的应用进行介绍.    1. 数据摘要 1.1. 函数声明: byte[] digest(byte[] data) 1.2. 函数特性:

比特币原理详解

自古美人都是妖i 提交于 2019-11-25 19:59:05
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人分别称之为ABCD,他们之间发起了3个交易,A转给B10个比特币,B转给C5个比特币,C转给D2个比特币。如果是传统的记账方式,这些交易会记录在银行的系统中,这些信息由银行来记录,我们相信银行不会随意添加、删除或修改一条交易记录,我们也不会关注到底有哪些交易,我们只关注自己的账户余额。而比特币的记账方式为ABCD每个人保存了这样一份账本,账本上记录了上述交易内容,如果每个人账本实时的一致,ABCD就不再需要银行。 比特币是这样做的,每当有人发起一笔交易,他就要将一笔交易广播至全网,由全网中的某一个人,把一段时间内的交易打包好记录到一个区块上,再按照顺序把这些区块,一个一个的链接在一起,进而形成了一个链条,这就是所谓的区块链。 那么问题来了 1、我凭什么要参与这个系统,我为什么要动用自己的计算机资源来存储这些信息呢? 2、以谁的记录为准呢?比如上面的账单顺序,A用户可能是这个顺序