公钥算法

js随笔

血红的双手。 提交于 2019-11-27 04:49:12
参考链接: https://juejin.im/post/5d23e750f265da1b855c7bbe https://github.com/ly2011/blog/issues/153 7 ES5/ES6 的继承除了写法以外还有什么区别 class Super {} class Sub extends Super {} const sub = new Sub(); Sub.__proto__ === Super; 子类可以直接通过 proto 寻址到父类。 function Super() {} function Sub() {} Sub.prototype = new Super(); Sub.prototype.constructor = Sub; var sub = new Sub(); Sub.__proto__ === Function.prototype; 而通过 ES5 的方式,Sub.__proto__ === Function.prototype 相关问题 : js的继承问题 // 寄生组合式继承 // 通过借用构造函数来继承属性, 通过原型链来继承方法 // 不必为了指定子类型的原型而调用父类型的构造函数,我们只需要父类型的一个副本而已 // 本质上就是使用寄生式继承来继承超类型的原型, 然后再讲结果指定给子类型的原型 function object(o)

Android端集成支付宝支付

十年热恋 提交于 2019-11-27 04:24:21
Android端集成支付宝支付 1.申请账号及配置变量 支付宝快速接入链接 点击打开链接 支付宝扫码或者账号密码登录 下面是支付宝给出的接入介绍 第一步:创建应用并获取APPID 要在您的应用中接入支付宝App支付能力,需要通过创建应用的方式接入蚂蚁相关接口并进行开发,基于对行业及业务场景痛点的理解,创造能够满足市场需要的解决方案,以应用的形式服务用户。 若还未成为开放平台的入驻服务商或者商户, 请完成 入驻指引 。入驻完成后,您需要去蚂蚁金服开放平台( open.alipay.com ),在开发者中心中创建您的应用,会为您生成应用唯一标识( APPID ),并且可以申请开通开放产品使用权限,通过APPID您的应用才能调用开放产品的接口能力。需要详细了解开放平台创建应用步骤请参考 《开放平台应用创建指南》 。 在创建应用后即生成应用的标识APPID,使用支付宝账号登录开放平台后,在“我的应用”中按下图方式查看APPID。 第二步:配置应用 添加app支付功能 1.应用创建完成后,需要给应用 添加App支付功能 ,这样就可以在你的应用里使用App支付能力。此时该应用为开发中状态,只能在沙箱环境下进行调试。应用开发完成后,请开发者自行进行验收和安全性检查(安全性检查可参考《 开放平台第三方应用安全开发指南 》),验收检查完成后可申请上线。应用申请上线后,会同时申请此列表的功能

从输入URL到页面加载发生了什么?

醉酒当歌 提交于 2019-11-27 01:55:32
  恩,如你所见,这是一道程序员经典面试题,涵盖了各个领域的知识,这个问题可以答的很简单,也可以答的很复杂。   首先,我们会在浏览器中输入类似 http(s)://xxx.xxx.com 这样的域名。   我们看到这个域名由 http 或 https 协议组成。   那么既然我们说到了协议,不得不先来了解一下计算机网络的知识了。      一台电脑要和另一台电脑通信,本质上就是通过电信号的高低频,在计算机中也就是0和1来传输,那么最底层一定是物理层,我们用的光纤,网线都是物理层的媒介和连接器,物理层也有很多协议和标准,这里就不展开了。往上一层包装的就是数据链路层,我们平时所说的ARP地址解析协议就在这一层,它是根据ip地址解析到电脑mac地址(硬件物理地址)的协议。再往上包装的就是网络层,著名的ip协议就在这一层,是用来寻址的重要协议。然后是传输层,寻址到了我们需要搭建一个传输的桥梁,著名的TCP三次握手就在这一层。通道已经建好了,那么把数据包用HTTP协议的格式封装好,准备传输,这一层就是应用层,还包括了常见的DNS域名解析系统,SMTP简单邮件传输协议等。   这样经过一层一层的包装和拆包,计算机和计算机之间才可以建立联系,互相发送彼此能看懂的数据包。   所以,在浏览器中输入URL后,第一步是通过应用层的DNS解析这个域名对应的真实ip地址

SSH

你离开我真会死。 提交于 2019-11-26 23:06:19
SSH 背景 解决的问题:明文登录信息暴露问题。 历史: 1995 年,芬兰赫尔辛基理工大学的 Tatu Ylonen 发现自己学校存在嗅探密码的网络攻击,于是开发了 SSH ( Secure Shell )通信安全协议,用于加密登录,并随后以免费软件形式发布,并创办 SSH 通信安全公司来继续开发和销售SSH。 截至2005年, OpenSSH 是唯一一种最流行的SSH实现,而且成为了大量操作系统的默认组件。 SSH 原理 核心: 非对称加密 。 整个过程是这样的: 远程主机收到用户的登录请求,把自己的公钥发给用户。 用户使用这个公钥,将登录密码加密后,发送回来。 远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。 口令登录 用户使用 ssh user@host 登录远程主机时,系统会提示远程主机的公钥指纹,当用户确认接收该公钥指纹时,会保存到 $HOME/.ssh/known_hosts 中,下次登录时会跳过。 公钥指纹:公钥长度较长(这里采用RSA算法,长达1024位),很难比对,所以对其进行MD5计算,将它变成一个128位的指纹。上例中是 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d ,再进行比较。 公钥登录 所谓"公钥登录",原理很简单,就是用户将自己的公钥储存在远程主机上。登录的时候

什么是openssl

不羁岁月 提交于 2019-11-26 13:58:37
openssl是web安全通信的基石,没有openssl,可以说我们的信息都是在裸奔。要想了解openssl,有几个前置的概念需要先熟悉一下: SSL SSL的全名叫做secure socket layer(安全套接字层),最开始是由一家叫网景的互联网公司开发出来,主要是防止信息在互联网上传输的时候不被窃听或者篡改,后来网景公司提交SSL给ISOC组织做标准化,改名为TLS。 有些同学可能会好奇,说好好的数据怎么就被窃听以及修改呢?这个其实是很容易的,如果你上网连得的是wifi,那么你的数据一定会经过wifi路由器,通过对路由器做些手脚就可以拿到这些数据。 非对称加密 在数学上有这样一个现象:给两个质数,很容易算出他们的乘积,但是给你一个很大的数,你很难分解出两个质数,让他们的乘积正好等于这个很大的数。 非对称加密就是基于以上的现象产生的,用一个密钥对数据进行加密,然后可以使用另外一个不同的密钥对数据进行解密,这两个密钥就是:公钥和私钥。 公钥和私钥是可以相互推导的,根据私钥,你可以很容易的算出公钥,但是根据公钥,你却很难很难算出私钥,在互联网上,私钥一般由服务器掌握,公钥则由客户端使用。根据公钥,理论上需要花费地球上所有的计算机计算数万年才能算出私钥,所以认为是非常安全的。 数字签名 将报文使用一定的HASH算法算出一个固定位数的摘要信息,然后用私钥将摘要加密,连同原来的报文一起

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,主要用于确保信息传输的完整性,输入是不定长度信息