March 9th, 20132012年度总结

这一年的总结比前几年更加的晚了0,0 【和去年的相似的开头】

2012年完成了人生中的一件大事 – 结婚了,要为了生活好好努力。

近一年很少锻炼, 轮滑, 自行车都没有进行, 上半年婉拒了原来一起去北京的朋再骑车去玩一回的邀请, 等一切步入正轨了再拾起这些爱好。

有时候会想起那过去的人和事, 然后就用各种办法翻找相关的记录 – 这样做也挺有意思地.

本来想尝试在客户端和服务器端使用RSA加密通信, 来增强通信的安全性.

我的客户端使用.net, 服务器端使用php. 然后噩梦就开始了.

首先php端的实现我采用的是phpseclib, 一个号称兼容openssl RSA加密, 支持OAEP,PKCS#1 padding的加密库. 客户端刚开始使用的是.net自带的加密库RSACryptoServiceProvider .

经过反复的尝试后, 发现无论是客户端还是服务器端, 加密后的字符串都不能在另外一边正确解密. 而通过phpseclib生成的key, .net端也不能正确加载.

经过一段时间的研究, 得出以下结论.

phpseclib生成的key, 是以明文base64编码保存的, 而.net的api则需要使用原始的key, 所以再加载时, 要先用base64解码 phpseclib生成的公私钥, 然后再加载, 经过尝试后, 发现偶尔会能成功.

但是这种情况下仍然无法正常解码加密后的信息.

再研究发现, RSA加密的标准的实现会有很多细节上的差异, 而这些差异则造成不同库之间协作的问题, 异同包括:

  1. 公私钥的格式不一样
  2. Padding格式不一样(即使号称用了同一种padding的库的结果貌似也不一致, (padding就是说会随机的往加密信息里填充一些字符, 来让加密更加难以破解)

所以要找到两个能协作很好的加密库很重要啊,

试了一些其他的.net的加密库, 貌似都不能和phpseclib很好的协作. 而由于时间关系, 就没有再继续研究这个问题了….

最近找工作相对比较清闲, 于是写了这个五笔输入法玩(考虑到仅有的五笔输入法FIT 貌似已经停止开发了 并且为以后正式切换到osx下准备一个好用的五笔输入法~) , 现在还是比较初级的版本, 只支持五笔输入…, 不过其他功能慢慢会加上地. 欢迎试用和提出批评及建议.

注:
shift 切换中英文输入,
测试时间不是太多, 可能会有些小问题(在我的黑苹果上测试的, 没有在真正的苹果上测过(10.6))…
切换中英文标点可以通过点右上方菜单栏上的图标来切换, 有空了加上对应的键…

已知问题:
1. 在设置窗口中选择颜色时颜色选择界面不会出来 (可以在点过颜色后再改变一下候选词的数量让颜色选择界面弹出来, 不知道是什么诡异的原因造成的)

附件是本输入法以及使用时的截屏. 把GreenPepperInput.app 放到/Library/Input Methods 或/User/yourname/Library/Input Methods 然后重新登录即可使用.

最近一段时间应该还会有开发的时间, 所以欢迎建议:D
Todo list:
1. 临时拼音
2. 皮肤支持
3. Bug fixes

下载在这里:GreenPepperInput

November 11th, 2009标记

命运的巧合, 一个是你的一半, 一个是另外一半。

April 22nd, 2009闵行体育公园

传说中闵行体育公园是一个大型免费的体育主体的公园, 昨天去了一下, 感觉确实很不错, 园子很大, 环境很不错, 随便搞了些图片来, 贴一下:

April 14th, 2009my shell tips

最近无聊的时候记下来的两个小tip:)

1. login的时候随即打印一个ASCII的图案。

这个比较无聊,基本原理就是把一些预先准备好的ASCII图案分别写成一个文件,在登陆的时候就是随机选取一个文件然后cat就可以啦.

Sample code:

#print out a logo to the screen...
logoDir="~/.logo"
if [ -d $logoDir ] ; then
cd $logoDir
# '*' is a filename wildcard to match all files in the current directory
set *
# Use the syntax for arithmetic expressions.  "%" is the modulo operator
# Shift arguments by a random number between 0 and the number of files
shift $(($RANDOM % $#))
echo -e '\e[0;32m'
cat "${logoDir}/$1"
echo -e "\e[0m"
fi

上面的代码就是把所有的ASCII图案放在~/.logo下面,然后再登陆的时候首先使用cd进入~/.logo目录,然后用set *来默认匹配所有文件名,
shift $(($RANDOM % $#)) 则是随即一个整数然后和文件数取模并选择对应的文件名,
echo -e ‘\e[0;32m’ 这一句是用来是后面的字符为绿色(因为白色的图案不好看啊…)
echo -e “\e[0m” 中止前面的改变字体颜色的效果,这样就不会影响后面的打印结果。

当然, 要记得去找一些ascii 图片放到你的.logo目录里啊:)

2. 动态更新putty的窗口标题

使用putty的ssh的同学们都会想putty可以向其他的终端模拟器一样根据当前目录啥的动态更新标题栏,其实这个也可以再putty里实现,这里需要注意两点:

a. 确保没有打开putty的禁止远程改变窗口标题的选项,这个选项可以在Terminal==>Features 里找到。

putty

b. 在你的登陆脚本里export 一个名为PROMPT_COMMAND的变量,顾名思义它需要是一个命令,下面是我的配置(注意开始的和末尾的数字都是必须的):

PROMPT_COMMAND='echo -ne "\033]0;${HOSTNAME}: ${PWD} -$USER\007"';export PROMPT_COMMAND

打印的格式为:hostname: /home/pangwa/src – pangwa

重新登陆或者source一下你的初始化脚本就可以了:)


© 2007 pangwa's Blog | iKon Wordpress Theme by Windows Vista Administration | Powered by Wordpress