Python中使用pack/unpack编码字节数据

在Python中,是没有int, long这些c系的强类型的,但是有的时候,我们需要按照字节规则,生成这样的数据。

例如:生成一份网络序的,char+unsigned long数据(4+8字节):
from struct import pack
pack('!BQ', 100, 1000)
'd\x00\x00\x00\x00\x00\x00\x03\xe8'
其中,第1个!表示为网络字节序。

BQ是占位符号,分别表示8bit的unsigned char和64bit的unsi[......]

继续阅读

vim在每行首和行尾插入

转载自:http://blog.sina.com.cn/s/blog_544f18310100yenj.html

每行的行首都添加一个字符串:%s/^/要插入的字符串
每行的行尾都添加一个字符串:%s/$/要插入的字符串
解释:
% 代表针对被编辑文件的每一行进行后续操作
$ 代表一行的结尾处
^ 代表一行的开头处
PS:自己之前太土了,一直用块编辑,比这个麻烦多了。。[......]

继续阅读

Firefox访问https报错sec_error_ocsp_old_response解决方法

最近,用ff访问https站点,频繁报错,提示“sec_error_ocsp_old_response”,甚至ff的插件都没法下载。

原因是,负责证书认证的ocsp.digicert.com被墙了,使ff无法在线验证证书安全性。

解决方法:
sudo vim /etc/hosts
# 新增
117.18.237.29 ocsp.digicert.com
换句话说,目前国内访问所有由ocsp.digitcert.com签发的https站点,都相当于裸奔的状态。[......]

继续阅读