26

js克隆函数

1、函数预编译过程 this —> window
2、全局作用域里 this —> window
3、obj.func(); func()里面的this指向obj), 可以这样理解,谁调用func,则this就指向谁
4、call/apply 可以改变函数运行时this指向,
(1)、call用法:
func.call(要改变后的this, arg1, arg2, … );
(2)、apply用法:
func.apply(要改变后的this, [arg1, arg2, arg2]);
(3)、apply和call共同点:都是改变this指向
apply和call不同点:传参形式不同,call是将参数一个个传进来,而apply是将所有参数存进一个数组中,然后将该数组传

对象克隆,分为浅克隆和深克隆,而上边的直接赋值的克隆操作为浅克隆,为什么称为浅克隆呢?因为,克隆的和被克隆的对象在克隆操作完成后,指向同一个地址引用,改变其中一个(注意:此处的改变为增加或删除对象的属性,而不是为该对象重新赋值一个对象),另一个也会改变,而深克隆则不会产生此现象。

深克隆/深拷贝代码如下:

Continue reading

25

强烈建议树莓派安装gparted工具进行分区扩容

我弄个树莓派,目的就是为了在另一台电脑中玩linux,总是在VM中弄感觉太没意思了。

但是在树莓派烧写完,开始鼓捣了,才知道,.img文件烧写完好像是才不到7G,确实是很精巧,可惜了我的32G的SD卡啊。

但是最苦的是我后来的各种挂载,一会这里空间不足,一会那里空间不足的,玩起来那是相当的不爽啊。

老长时间没怎么玩了,今天突然又玩了一会,弄得真是心烦。

无意间找到一个图形化工具 gparted,看介绍应该是可以解决我的分区问题的,看着很爽,开始下手了。

系统环境: kali系统,所以不同版本的linux,可能会有区别。

安装gparted

安装是相当的简单,操作起来就要摸索一下了。 Continue reading

22

The Apple Developer Program License Agreement has been updated

The Apple Developer Program License Agreement has been updated.

In order to access certain membership resources, you must accept the latest license agreement. First, you’ll need to update the mobile phone number associated with your Apple ID. Your mobile phone number must be based in your country/region. Edit this number in the Account section of appleid.apple.com, and return to your developer account to continue.

Edit Phone Number

========== 

在Apple ID中原来没有手机号,只有一个帐号的邮箱地址,可以增加了手机号,还是弹出上面的提示信息,再增加一个手机号,同样还是这个提示,如下图:

TIM20180422174428

 

弄了好几天了,还是无解。

今天进入iTunes Connect发现了一些问题,首先,还是提示我去更新手机号,如下图:

TIM20180422150943

 

之后点击“Agreements, Tax, and Banking”(协议、税务和银行),如下图:

TIM20180422152533

进入后页面如下图:

TIM20180422175717

看到这里我感觉好像明白了点什么。是不是因为苹果公司在更新系统的原因才不给弹出签协议的链接呢?假如不是这个原因的话,我真是想不出别的什么解释了!

验证方法,只能等到这个页面放出后,看看还有什么提示吧。

未完,待续…… Continue reading

21

苹果Mac怎么解除的App Store的免密支付

解除支付宝免密支付的方法,解除微信支付免密支付的方法

1、打开App Store,精选(一般默认打开就是这个选项),之后看页面右侧“快速链接”,下面的“帐户”(如下图),狠点狠点。

AppStore1

 

2、修改付款信息,选择支付方式时,改为“银行卡”,如下图:

AppStore2

 

3、选择好后,点击页面最下面的“继续”,一直继续就完成了。

17

Python获取自己本机的公网IP(外网IP)_简单粗暴

 

17

Python如何判断当前操作系统类型是Windows还是Linux

判断当前操作系统类型

打印结果

 

15

初识python爬虫框架scrapy

好东西要学习

项目目录结构

这些文件分别是:

  • scrapy.cfg: 项目的配置文件
  • tutorial/: 该项目的python模块。之后您将在此加入代码。
  • tutorial/items.py: 项目中的item文件.
  • tutorial/pipelines.py: 项目中的pipelines文件.
  • tutorial/settings.py: 项目的设置文件.
  • tutorial/spiders/: 放置spider代码的目录.

接下来,进入到项目目录中:

创建一个新的spider:

可用的工具命令(tool commands)

可以通过运行命令来获取关于每个命令的详细内容:

您也可以查看所有可用的命令:

Scrapy提供了两种类型的命令。一种必须在Scrapy项目中运行(针对项目(Project-specific)的命令),另外一种则不需要(全局命令)。全局命令在项目中运行时的表现可能会与在非项目中运行有些许差别(因为可能会使用项目的设定)。

全局命令:

项目(Project-only)命令:

自定义项目命令

您也可以通过 COMMANDS_MODULE 来添加您自己的项目命令。您可以以 scrapy/commands 中Scrapy commands为例来了解如何实现您的命令。

COMMANDS_MODULE

Default: '' (empty string)

用于查找添加自定义Scrapy命令的模块。

例子:

Continue reading

14

FileZilla连接ftp服务器失败,提示”AUTH TLS”解决方法

使用FileZilla工具连接ftp连接失败,提示”AUTH TLS”,用浏览器试了一下”ftp:ip地址”,输入用户名、密码后可以正常访问。所以应该是FileZilla软件连接配置有点问题。

1.连接的提示

连接时并没有提示用户名、密码错误,说明是正确的;查了下,原因是服务器不支持FTP over TLS的连接方式。

980380-20170409120055175-1739663121

2.解决方法

在FileZilla的站点管理器中,选择加密方式是:只使用普通FTP(不安全)方式,再重新连接。

980380-20170409120138050-251587653

3.重新连接

980380-20170409120130457-517232311

4.注

(1).FTP over TLS指客户端显示请求(客户端发送”AUTH TLS”命令)对FTP会话加密。但服务器拒绝请求TLS的连接,这是由于不支持FTP over TLS的连接方式造成的。

14

RSA非对称加密之PHP生成pem公钥私钥对及使用的两个实例

PHP生成pem公钥私钥对

如果不能生成密钥对,则修改验证变量$confs数组中的config值。

最初我不能生成公钥,是因为函数openssl_pkey_export(),只使用一前面两个参数,后台增加了后面两个参数就可以了。原因是:因为openssl_pkey_new($confs)中使用了$confs,那么函数openssl_pkey_export()也必须加入参数$confs。

实例一:

公钥加密(openssl_public_encrypt),
私钥解密(openssl_private_decrypt)。
私钥加密(openssl_private_encrypt),
公钥解密(openssl_public_decrypt)。
都是一个道理,代码类似。

RSA加密解密有个填充方式padding的参数,不同编程语言之间交互,需要注意这个。

padding can be one of OPENSSL_PKCS1_PADDINGOPENSSL_SSLV23_PADDINGOPENSSL_PKCS1_OAEP_PADDING,OPENSSL_NO_PADDING

值得注意的是,如果选择密钥是1024bit长的(openssl genrsa -out rsa_private_key.pem 1024),那么支持加密的明文长度字节最多只能是1024/8=128byte;

如果加密的padding填充方式选择的是OPENSSL_PKCS1_PADDING(这个要占用11个字节),那么明文长度最多只能就是128-11=117字节。如果超出,那么这些openssl加解密函数会返回false。

这时有个解决办法,把需要加密的源字符串按少于117个长度分开为几组,在解密的时候以172个字节分为几组。

其中的『少于117』(只要不大于117即可)和『172』两个数字是怎么来的,值得一说。

为什么少于117就行,因为rsa encrypt后的字节长度是固定的,就是密钥长1024bit/8=128byte。因此只要encrypt不返回false,即只要不大于117个字节,那么返回加密后的都是128byte。

172是因为什么?因为128个字节base64_encode后的长度固定是172。

这里顺便普及下base64_encode。encode的长度是和原文长度有个计算公式:

$len2 = $len1%3 >0 ? (floor($len1/3)*4 + 4) : ($len1*4/3);

 

实例二:

明文超出长度的代码(前提是1024bit的密钥长,OPENSSL_PKCS1_PADDING的填充方式,否则数字要变化)

在实际应用中,分析使用场景,再把两个实例再进行一下结合,相信就会更加美妙了,这里就不多写了。

PHP加密函数 sha256 sha512 sha256_file() sha512_file()

14

PHP把.cer证书内容转.pem格式字符串的封装函数

IOS的.cer证书内容转为pem格式内容