存档

2017年9月 的存档

安装 pywin32 的坑

2017/09/27 7,065

坑1 :

在 Pypi 上有 pywin32 的页面 ,然后无法使用 pip 命令来安装它,只有到 Sourceforge 下载源码或安装程序

坑2:

如果你下载了源码,可以使用:

来自动编译安装。很不幸,我的windows上编译环境比较复杂( 有 vs2013/2015/2017)。 setup.py 在编译时抛出了各种环境错误。好在我有 mingw,使用命令:

用 mingw 来进行编译,然后被抛出错误:

那么下载安装包直接进行安装吧  🙁

坑3:

我使用的是win10 64位操作系统,使用 python2.7 环境。于是下载了 pywin32-221.win-amd64-py2.7.exe 。点击安装,下一步:

仔细检查,环境变量是没有问题的。再手动选择python安装路径(只能粘贴,不可以键盘输入),还是有错误…… 查注册表,发现注册表里有一些缺失。添加注册表:

OK ,安装成功!😏

坑4:

在 python 中运行一下:

出现错误:ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。

摔……😡

再次检查,发现这台电脑是安装的python 是32位 版本的。再次安装 pywin32 的32位版本,这次运行成功……

🤣

计算信息的指纹–哈希函数

2017/09/20 5,432

1 XCodeGhost 风波

2015年9月17日左右,知名程序员唐巧发布微博声称Xcode有可能被第三方代码注入,而在社交平台上引起轩然大波。乌云网后续发布相关的知识库文章。而在此之前,腾讯安全应急响应中心在跟踪某app的bug时发现异常流量,解析后上报了国家互联网应急中心(CNCERT),后者随即在9月14日发布了预警消息。之后也有国外信息安全组织跟进调查。 受影响的应用程序包括微信、网易云音乐、滴滴打车、高德地图、12306、同花顺、中信银行动卡空间、简书等76种。而事情的起因,是有人将被添加了恶意代码的 XCode 放在百度云盘上,供开发者下载,在使用感染后的XCode发布的App都带有后门,会在最终客户端运行时将隐私信息提交给第三方。 这一事件被称为 "XCodeGhost 事件"。

事件的背后折射出的,是计算机网络信息中的安全问题。 互联网中的大部分用户,都缺乏基本的安全意识,其中就包括计算机重度使用者:程序员。 如何确保我们下载使用的软件是没有经过污染的软件呢?首先确保我们从正规的渠道获取软件,其次,我们需要对软件进行校验。比较常用的方法,是使用哈希函数进行校验。 如 Eclipse.org 为我们提供了 SHA-512 校验码

2 什么是哈希函数

哈希函数,也叫单向散列函数 (one-way hash function) ,有一个输入和一个输出,输入称为 消息 ,输出称为 散列值 ,函数根据消息计算出散列值,可以用来检验消息的完整性。它也称作 消息摘要函数 (Message Digest Function)  ,或者 杂凑函数 。消息也被称作 原像 ,散列值也被称作 哈希值 或 指纹 。哈希函数具有以下的特性:

  1. 散列值长度与消息长度无关
  2. 散列值与消息内容密切相关,即消息不同,散列值也不同
  3. 单向性 在给出散列值 H(M) 的情况下,无法计算出消息 M 的值。
  4. 抗碰撞性 如果有消息 M1,散列值 H(M1), H(M2) ,且 H(M1) = H(M2) ,很难找出消息 M2 令 M2 ≠ M1

3 常见的几种哈希函数

3.1 MD5

MD5 能够产生 128 bit 的散列值(RFC1321)。 MD5 的强抗碰撞性已经于 2005 年被攻破,也就是说,现在已经能够产生具备相同散列值的两条不同的消息,因此它是不安全的。
继续阅读

如何在 VSCode 中调试 Electron

2017/09/19 5,758

1 步骤

  • 将 vscode 切换到 debug 视图 ( Ctrl+Shift+D ) 
  • 打开 launch.json .在 configurations 节点下添加以下对象并保存

  • 在 main.js 中添加一个断点
  • 在 vscode 中点击 "开始调试"  ,命中断点,即可开始调试。

2 变量

在 launch.json 中有一些预定义的变量:

  • ${workspaceRoot} VSCode 打开的文件夹目录路径
  • ${workspaceRootFolderName} 根路径文件夹名称
  • ${file} 当前打开的文件
  • ${relativeFile} 当前打开文件相对于 workspaceRoot 的相对路径
  • ${fileBasename} 当前打开文件的文件名
  • ${fileBasenameNoExtension} 不带扩展名的文件名
  • ${fileExtname} 当前打开文件的扩展名
  • ${fileDirname} 当前打开文件的文件夹名称
  • ${cwd} 运行任务的工作路径
  • ${lineNumber} 当前文件的选择行

除了这些预定义的变量,还可以使用

  • ${env:Name} 来使用环境变量,如 ${env:PATH}
  • ${config:Name} 来使用 VSCode 的设置,如 ${config:editor.fontSize}
  • ${command:CommandID} 来执行命令行,如 ${command:explorer.newFolder} (windows)

3 不同操作系统的配置

launch.js 还支持对不同的操作系统作特殊配置,如:

对于 runtimeExecutable 节点, windows 操作系统使用 electron.cmd 文件,而其它操作系统使用 electron 操作系统分别定义为: windows , linux , osx 三种。