| Fwolf's profile温暖的耗子窝BlogLists | Help |
|
10/26/2009 可恶,被 PHP-Mcrypt 的官方 Example 误导了在看 php 的 mcrypt 加密,想使用对称算法,解决小块内容(比如 url、post)网上传输的安全性。即加密、解密用同一个密码。官方文档有个非常完整的演示功能的例子,大概顺序是:
加密、解密放在了一个代码片段中,大概是想说,加、解密就那一句代码不同而已。 按照这个理解,为了使用方便,我把加、解密分解成了2个函数,内容都和例子差不多,不会有错。但一运行,不管用哪种加密算法,都会出现奇怪的解密后与原文不一致的错误。还不是完全不一致,后面大半段内容都是正确的,比如原文是包含 a-z 26个字母的字符串,运行结果如下:
好一通找原因,最后在支持算法列表页面中找到这么一句:The IV must be unique and must be the same when decrypting/encrypting.加、解密时所使用的 IV 必须相同。 昏,例子代码中 IV 是使用随机数生成的,分成2个函数之后,加、解密操作生成的 IV 肯定不一样,这就是解密失败的原因。mcrypt_create_iv() 函数文档页面的 user notes 中有位 Chris 还对 IV 纠正了一些错误观点。 综上,正确解密需要将 IV 与密文一同存储、传递。而我的需求比较简单,就没有必要这么作,反正 IV 也不需要保密,所以直接用 key 的 sha1 值的片断,比如前8位(与 git 版本号简写类似)作为 IV,对安全性影响不大,应该是可以接受的。 问题解决,收工,有和我一样吃过亏的同学么? Tags: crypt, encrypt, mcrypt, random, think, wrongRelated posts
9/28/2009 Flash 无法修改设置的问题
这个怪怪的问题也不是一天两天了,就是 flash 设置窗口,或者当 flash 游戏需要使用本地存储空间时,自动弹出的设置窗口,这个窗口无法用鼠标点击,用键盘 TAB 键能在各部分之间游荡但还是无法调整设置,基本上就卡死在这里了。 遇到这种情况,可以访问这个链接:http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager07.html,注意链接中并不是图片,而是实际的设置调整组件。比如刚才说的访问本地资源需要确认的问题,在这里设置成 Ubuntu 9.04, Firefox 3.0.13, Flash Player 10.0 r32. 参考:Tags: flash, Problem, settingRelated posts8/18/2009 压缩网页图片不压不知道,一压下一条,大部分图片几乎都能在近似无损的情况下压缩到 65% 原始大小左右,如果指明有损压缩,比如 jpeg 的 85 %,还能更小。 Smush.itsmushit 现在已经属于 Yslow 的一部分了,可以通过 firefox 插件使用,也能在线用,缺点就是你的图片必须能够从公网访问。 可以压缩各种图片,按照官方的解释,它会尝试各种工具和算法,找到最优的方式。因此,smushit 是一种很安全的压缩工具,几乎看不到差别,就是用起来麻烦些。 imagemagick不同的图片格式有各自的特点,比如 gif 善于存储颜色较少的图片,也是动画图片的首选;png 善于存储能够矢量化的图片,jpg 则善于存储颜色、图片变化都比较多的图片。根据不同的图片特点,进行类型转换,有时能收到不错的效果。 图片 convert 之后,还可以利用其它工具进一步压缩,不过效果不大了。 另附一个转换图片类型之后,批量替换模板中调用文件名的脚本: grep logo.gif * -R | awk '{print $1}' | sed 's/://' | xargs -I '{}' sed -i 's/logo.gif/logo.jpg/' '{}' jpegoptim这是今天刚发现的好东西,ubuntu 源中有,主要可以用它去除 jpg 图片文件当中的 comment exif IPTC 等无用标记,我测试的情况压缩率比 smushit 略低一点点。由于能够通过命令行使用,所以易用性更强。 一般我喜欢用 遇到无法压缩的图片、压缩后体积反而增大的图片会自动跳过,很贴心。 基本上,有了上面三种方式,就能够处理大部分网页图片了。 Tags: compress, convert, gif, image, jpg, optimize, png, yslowRelated posts
8/4/2009 [Git]初学者注意事项实在是受不了有些人的 Git 提交,费大力气“回滚”,遂整理了这些刚开始用 git 或者还没有建立 scm 概念时容易犯的错误。 和源码无关的东西,尽量不要进仓库不得不说一些图形化软件,在提交内容的时候大多提供一个“全选”或者“Select All”功能,这是最不好的了,一些懒惰的同志看都不看就连瓢带碗都提交了。
尽量采用相对小、相对独立的提交Git 是作什么用的?Git 不是代码上传工具,也不是网站更新工具,而是软件开发过程的记录工具,为了更加准确的定位每个问题、每个功能修改,就需要在每完成一部分可以称得上是“一项”的工作时,就 commit 一次。哪怕只是修改了一两行,只要产生了必要的功能改变,就有价值记录。 当采用代码审核机制或者需要用邮件提交补丁时,较小的提交能够更有效、更容易、更准确的被检查和审核,这个在 linux kernel 开发文档中也有提到。 当然不能矫枉过正,必须有可记录的改变才有提交的价值。对应的,Git 日志大多数情况下主要显示第一行,控制每次提交都能用一句话简单概括,也是有必要的。 注释格式格式属于个人习惯和团队规范范围,有必要采用相对统一的风格。 Git 本身不允许空注释,同时建议注释的第一行写简要说明,下面留一行空行,再写详细说明。 我的个人习惯,喜欢在每条注释前面用大约三个字母来表示本次修改的性质:
为了保持语法通顺,也可以采用前三个字母后面加冒号,后面有啥写啥的方法。 最后,我觉得,能够遵守行业规范和团队约定,主动养成良好习惯,应当是鉴别人才的一项重要因素。 Tags: git, newbie, rule, Svn/Git, tipsRelated posts
8/2/2009 Windows安全更新KB951748可能导致dns无法解析很久没有鼓捣 windows 了,今天帮一个朋友修复他“不能上网”的问题,遇到了,记录于此。 首先遇到的是局域网 ip 设置问题,居然自己无法 ping 出去,别人却能 ping 通自己,怀疑是网络管理员作了什么设定,更改ip设置绕过。 然后就是 windows 里 dns 的怪问题了,具体表现为:用 nslookup 能够正常解析域名,直接 ping 域名却得到域名无法解析的错误。用 ip 地址可以直接打开网站,可输入域名却由于无法解析而打不开。 怀疑是 winsock 或者 lsp 的问题,尝试修复却未发现任何问题。 最终原因就是这个 windows 安全更新 KB951748,网上的说法是: 这个问题是microsoft把dns解析的本地端口改成了49152-65535,和visita一样(所以visita系统不受影响)。对于lns等 rules based firewall,只需要把dns rule的本地端口范围改成49152-65535就ok了(xp系统缺省是1024-5000)。 卸载之,一切恢复正常。 Tags: dns, Problem, windowsRelated posts |
||||
|
|