网络基础 - HTTPS

博客分类: 江河计划

网络基础 - HTTPS

1.算法

快排

var arr = [4,2,3,2,3,5,1,0,7,6]
Array.prototype.quickSort = function(){
	var len = this.length;
	if(len <= 1) return this;
	var middleIndex = parseInt(len / 2, 10),
		middle = this[middleIndex],
		left = [],
		right = [];
	for(var i=0; i<len; i++){
		if(i === middleIndex) continue
		if(this[i] < middle){
			left.push(this[i])
		}else{
			right.push(this[i])
		}
	}
	return left.quickSort().concat([middle], right.quickSort())
}
arr.quickSort()

选择排序

var arr = [4,2,3,2,3,5,1,0,7,6]
Array.prototype.selectSort = function(){
	var len = this.length,
		minIndex, tmp;
	for(var i=0; i<len; i++){
		minIndex = i;
		for(var j=i+1; j<len; j++){
			if(this[j] < this[minIndex]){
				minIndex = j
			}
		}
		if(minIndex !== i){
			var tmp = this[i];
			this[i] = this[minIndex];
			this[minIndex] = tmp
		}
	}
	return this;
}

2.正则

中英文字符:/[a-zA-Z\u4e00-\u9fa5]/g

双音节字符:/[^x00-xff]/g

首尾空格:/^\s*|\s*$/

URL: /[a-zA-z]+://[^\s]*/

3.整理知识 HTTPS

整体

http://www.jianshu.com/p/30b8b40a671c HTTP+加密+认证+完整性保护 = HTTPS

  • 加密:内容加密建立一个信息安全通道,来保证数据传输的安全;
  • 认证:身份认证确认网站的真实性
  • 完整性保护:数据完整性防止内容被第三方冒充或者篡改

image

对称加密: 对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。而在大多数的对称算法中,加密密钥和解密密钥是相同的,所以也称这种加密算法为秘密密钥算法或单密钥算法。

非对称加密: 与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey);并且加密密钥和解密密钥是成对出现的。非对称加密算法在加密和解密过程使用了不同的密钥,非对称加密也称为公钥加密,在密钥对中,其中一个密钥是对外公开的,所有人都可以获取到,称为公钥,其中一个密钥是不公开的称为私钥。

非对称加密算法对加密内容的长度有限制,不能超过公钥长度。比如现在常用的公钥长度是 2048 位,意味着待加密内容不能超过 256 个字节。

摘要算法: 数字摘要是采用单项Hash函数将需要加密的明文“摘要”成一串固定长度(128位)的密文,这一串密文又称为数字指纹,它有固定的长度,而且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致。“数字摘要“是https能确保数据完整性和防篡改的根本原因。

数字签名: 数字签名技术就是对“非对称密钥加解密”和“数字摘要“两项技术的应用,它将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。

SSL

浏览器的 HTTPS 是基于 SSL(Secure Socket Layer,安全套接字层)协议,协议分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等

交互流程

APP打包

环境已经配置好了

android 打包步骤

线上包 Build -> Generage Sign apk -> next -> 签名 -> 打包完成

iOS 打包步骤

本地生成证书,在后台配置证书,进入配置页面将证书配置到线上 修改 bundle identifier

测试包 Product -> archive -> 等待打包完成,会自动弹出包保存的页面(手动打开 Window-> organizer) -> export -> developement -> 勾掉选项 -> 选择证书 -> 导出 线上包