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
- 加密:内容加密建立一个信息安全通道,来保证数据传输的安全;
- 认证:身份认证确认网站的真实性
- 完整性保护:数据完整性防止内容被第三方冒充或者篡改
对称加密: 对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。而在大多数的对称算法中,加密密钥和解密密钥是相同的,所以也称这种加密算法为秘密密钥算法或单密钥算法。
非对称加密: 与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(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 -> 勾掉选项 -> 选择证书 -> 导出 线上包