Archive

Archive for the ‘零敲碎打’ Category

强制清空系统本地DNS缓存

July 29th, 2015 No comments

本地DNS缓存被GFW污染时,需要手动强制清理本地的DNS缓存。通常只需要修复一下网络连接即可。使用命令方式处理也很简单,下面是Windows/Mac OS/Linux/Unix环境下使用命令强制清空系统本地DNS缓存的方法。

1.Windows环境下,可以使用以下命令:

ipconfig /flushdns

2.Mac OS X 环境下,通常可以使用以下命令:

sudo dscacheutil -flushcache

Read more…

[Xcode]编译时objc_msgSend错误的解决办法

July 22nd, 2015 No comments

之前开发的代码中需要强制使用一些苹果的私有API,用了objc_msgSend方法进行调用,最近使用最新版本的Xcode进行编译时一致无法通过,后来通过度娘解决了这个问题,在此记录一下,修改方法也很简单,将ENABLE_STRICT_OBJC_MSGSEND的属性值设置为NO就OK,至少目前还没发现程序有什么问题。

参考地址
http://www.ruanman.net/swift/learn/10443.html
http://blog.sina.com.cn/s/blog_916e0cff0102vdnj.html

Categories: 零敲碎打 Tags: ,

[Android]使用浏览器直接打开PDF和Office文档

March 6th, 2015 No comments

Android原生系统中的自带浏览器和Chrome浏览器是不支持直接打开PDF的文档的,需要现下载到本地之后再使用Adobe Reader之类的PDF阅读器才能打开。微软Office中DOC和XLS之类的也是如此。不过用习惯了安装了ActiveX插件的IE的客户最近突发奇想,要求在新开发APP中可以直接打开并阅读PDF和微软Office的DOC,XLS,PPT等文档。经过调查发现以下方法可用。供大家参考。

1.使用内置WebView或WebChromeClient打开以下格式的URL,借用GoogleDoc的嵌入式文档服务打开需要的打开的文档。只需按固定格式打开即可。
https://docs.google.com/gview?embedded=true&url=XXXXXX
其中XXXXXX为需要打开文档的公网URL地址
Read more…

WordPress3.9以后加载Google字体速度缓慢

September 29th, 2014 1 comment

升级Wordpress后发现从国内打开网站每次都需要1分钟以上的时间,速度奇慢,但是使用VPN代理从国外访问基本上是秒开,起初以为是服务器使用了安全狗过滤国内IP的原因,但是关闭安全狗后依旧如此,切换了国内几处代理同样如此,但是使用Ping检测的响应延迟数正常。
后来使用网页调试工具发现每次加载网站,wordpress都会向fonts.googleapis.com请求字体内容,而且请求占用很长时间。想到最近GFW发威。应该是fonts.googleapis.com访问的问题。最后通过搜索找到了以下解决方法

解决方案如下:
安装replace-google-fonts插件即可。安全又可靠。

插件说明地址:http://www.soulteary.com/2014/06/08/replace-google-fonts.html
插件下载地址:http://www.soulteary.com/wp-content/uploads/2014/06/Replace-Google-Fonts.zip

原理:fonts.googleapis.com修改为fonts.useso.com,fonts.useso.com为360提供的云端字体服务,使用的话,在国内基本毫无障碍。

2015/03/06追加
最近GFW大神放松了对Google字体API的管控,fonts.googleapis.com暂时可用。使用了replace-google-fonts可以暂时停用即可。

Categories: 零敲碎打 Tags: , ,

iOS开发之APP进入后台禁止自动截图

August 26th, 2014 Comments off

iOS在7.0以后,APP进入后台后会把当前APP的Window状态记录,并对Window进行截图操作,会在APP的Sandbox的Library\Caches\Snapshots\xxxx.xxx.xxx文件夹中增加以下几个文件。这有可能会造成用户敏感数据的泄密。
UIApplicationAutomaticSnapshotDefault-LandscapeLeft.png
UIApplicationAutomaticSnapshotDefault-LandscapeRight.png
[email protected]
[email protected]

Read more…

iOS开发之Objective-c的AES加密和解密算法的实现

August 26th, 2014 6 comments

高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法。
以下实现代码中分别为NSData和NSString增加了一个Category。使用时直接调用即可。

需要注意的是,AES并不能作为HASH算法,加密并解密后的结果,并不一定与原文相同,使用时请注意进行结果验算。例如解密原文的长度,格式规则等。
NG实例

原文:170987350
密码:170

Read more…

iOS开发之Objective-c的SHA224/SHA256/SHA384/SHA512加密算法的实现

August 26th, 2014 No comments

之前在博文中实现的SHA1的安全性已经满足不了用户需求,今天把SHA224/SHA256/SHA384/SHA512的实现一并附上。
SHA即Secure Hash Algorithm(安全散列算法)有多种不同位数的实现,常见的有SHA224/SHA256/SHA384/SHA512等

SHA224:

- (NSString*) sha224
{
    const char *cstr = [self cStringUsingEncoding:NSUTF8StringEncoding];
    NSData *data = [NSData dataWithBytes:cstr length:self.length];
 
    uint8_t digest[CC_SHA224_DIGEST_LENGTH];
 
    CC_SHA224(data.bytes, data.length, digest);
 
    NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA224_DIGEST_LENGTH * 2];
 
    for(int i = 0; i < CC_SHA224_DIGEST_LENGTH; i++)
        [output appendFormat:@"%02x", digest[i]];
 
    return output;
}

Read more…