Saturday, April 28, 2007 3:27:40 AM
Software, Utilities, 随手记, 学习
...
与
MD5库类似,今天封装了个SHA1的库。
/*
* 编译方法
*
* gcc -o sha1test sha1test.c libleosha1.so
* 此方法需要将libleomd5.so复制到系统路径下,例如/usr/lib
*
* gcc -o sha1test sha1test.c ./libleosha1.so
* 此方法需要将libleosha1.so复制到test所在路径下
*
* bayern.leo@gmail.com
*/
int main( int argc, char *argv[] )
{
int i;
for(i=1;i<argc;i++) {
if(i+1<argc) {
if (strcmp(argv
,"-s")==0) {
printf("SHA1 for string %s: %s\n",argv[i+1],LeoSHA1(argv[i+1]));
} else if (strcmp(argv,"-f")==0) {
printf("SHA1 for file %s: %s\n",argv[i+1],LeoFileSHA1(argv[i+1]));
}
}
}
return( 0 );
}
MD5-SHA1.tar.bz2
Saturday, April 21, 2007 1:15:36 AM
Utilities, Software, 抛砖引玉, 学习
...
算法的源码用的还是国外前辈的,封装为一个共享库,便于在不同的程序中使用。
测试程序test.c的全部代码如下。
#include <stdio.h>
/*
* 编译方法
*
* gcc -o test test.c libleomd5.so
* 此方法需要将libleomd5.so复制到系统路径下,例如/usr/lib
*
* gcc -o test test.c ./libleomd5.so
* 此方法需要将libleomd5.so复制到test所在路径下
*
* bayern.leo@gmail.com
*/
int main(int argc,char* argv[]) {
int i;
for(i=1;i<argc;i++) {
if(i+1<argc) {
if (strcmp(argv
,"-s")==0)
printf("For string %s: %s\n",argv[i+1],MD5(argv[i+1]));
else if (strcmp(argv,"-f")==0)
printf("For file %s: %s\n",argv[i+1],MDFile(argv[i+1]));
}
}
return 0;
}
(2007-4-28有更新)
MD5-SHA1.tar.bz2
Sunday, April 8, 2007 11:15:31 AM
linux, 随手记
命令行是一种shell,不是linux,linux也不是命令行。
shell的诞生比linux早得多,它不是linux。
而linux,无论是指内核,还是指发行版,都不是命令行,正如dos不是windows,windows也不是dos一样。
当下,命令仍然是很重要的,但重要的工具不是事物本身,重要的工具在某一天可能不再需要。
类似的情况是,眼镜对于一个视力上有健康问题的人,是非常重要的,但不能说眼镜就是那个人。如果某一天,这个人治好了视觉上的问题,那么眼镜就成了摆设。
技术无罪,命令行当然是无罪的。
一种荒谬的现象是,许多言论企图把命令行当作linux本身来向人们灌输。这种言论和企图正在损害着linux。
geek们整天端坐在电脑--不,他们的命令行--前,他们背熟了数量大得惊人的命令行参数。这些天书般的字符成就了他们的优越感。当隔壁天真可爱的、正在上小学的小男孩小女孩们指着shell说“我不要这个,我要电脑”时,geek们异常愤怒,恨不得生啖其肉。然而他们不大可能犯下太多罪行,因为他们慈祥的母亲也“不要这个,要电脑”,母亲只是一个星期发一封电子邮件和生活在另一个城市的表姐妹保持联系;也因为他们事业有成的哥哥也“不要这个,要电脑”,哥哥工作太忙,老是想不起wget下载的文件保存在哪里。geek们叹息一声,找了个阴暗的角落坐了下去,他们喃喃自语“等你熟悉了命令行……”。
有部分相对理性的命令行爱好者,只强调命令行和图形界面的性能区别,他们喜欢说命令行节约了多少系统资源。他们忘了系统资源是拿来用的,就象linux不惧怕用完内存一样,linux的用户其实不必为系统资源担心太多。有些场合,确实只有非常有限的系统资源可供使用,这时候命令行成了不二的选择。然而,并非所有人都要去参加奥运会,也并非所有人都必须成为系统管理专家,并非所有人都要成为便携设备的开发工程师,大多数要用电脑的人,他们更愿意把电脑配置为大一点的硬盘、大一点的内存、大一点的显示器、快一点的处理器,当然也少不了鼠标,爱玩游戏的,还希望有游戏控制杆。在硬件的条件足可使用可视界面时,还要拿人脑和电脑较劲,是比较令人惊诧的。
无罪的命令行正日益成为人们接近linux的拦路虎。强大的shell正在妨碍linux变得更强大。一些在命令行上下过苦功的人们,告诉另一些人们,linux就是这样的。而被这样告知的人们,不得不考虑一下,自己必须花多长时间才能用起这个自由的东西。
真是可恶!
不,linux不是这样的,linux理应变得更易使用,熟悉命令行的人们应该想办法让别的人们不需要熟悉命令行。
Wednesday, March 28, 2007 7:58:15 AM
在不同的电脑上,明明都把杀毒软件的病毒码更新了,但依然奋勇中招,似乎不是某一个杀毒软件的问题,因为这些电脑上用的还都是来自中外各大知名厂商的产品。
这次病毒的表现是会在 WINDOWS 目录下生成一个 Logo1_.exe 文件,在 WINDOWS 目录下的 uninstall 目录下生成一个 rundl132.exe 文件,然后这两个文件就胡作非为了。在杀毒软件跟上时代步伐之前,这两个文件会不断生成。
没办法,我只好赤膊上阵,手工大战病毒。
用了一种调皮的办法,竟然有效,嘿嘿,WINDOWS上的确是时有惊喜的。
下面描述一下这种办法。
手工删除上除两个文件,然后建立两个空文件,然后分别命名为 Logo1_.exe 和 rundl132.exe ,然后把这两个文件的属性设为“只读”,顺手把“隐藏”和“存档”也都勾上。
再把 uninstall 目录也设置同样的属性。
之后,病毒会伺机调用这两个文件,不过,既然已经是空文件,也就没有什么危害性了。
目前病毒还不会强行更新这两个文件,只是不知道下一版本如何了。
Saturday, March 17, 2007 6:04:30 AM
华镭
在我的电脑上,在华镭里同时使用FIREFOX和XCHAT非常容易造成NAUTILUS出错,往往还进一步地引发汉统输入法出错。
不胜其扰,必须找一个解决方案出来。
以我的“Everything should be easy.”的理念,我不打算花太多的精力在这种问题上。寻找XCHAT的代替品是我的思考方向。
在华镭的软件库里除了XCHAT似乎只有一些命令行的IRC工具,例如epic4等等。关于命令行,我只能说那是很强大但怎奈不是我的心头好。
还好世上有着更多的选择,例如用Java开发的DoIrc。
试用之下,系统稳定多了,对于不拒绝英文界面的我来说,这东东暂时还没表现出太多缺点,于是打了个DEB包。
doirc_1.2.1-1.rays0_all.deb
Friday, March 16, 2007 12:06:35 PM
随手记
我的决心已经大得近乎压迫症,日复一日地在今天达到了高潮。
于是乎把最后一个出自专有软件的分区格掉了,真是feel good(从一些正版软件的说明中学来这个说法)。
Friday, February 16, 2007 9:13:42 AM
随手记
everytime...after downloaded more than dozens of M of files...connect reset...so go prev...without closing the dialog...and then go next..it simply starts the download period exactly from the very beginning...and then connect reset...and then on...it really sucks...
Wednesday, February 7, 2007 3:04:17 PM
CWebShell
CWebShell.tar.gz/*
* CWebShell version 0.0.1 实验性质。
*
* 超轻量级的Web界面Shell,运行方式: ./CWebShell key_word_to_exit
*
* 你可以选择用ROOT权限运行以取得小于1024的端口号,但我并不推荐你这样做!
*
* 本软件没有任何自身的安全机制!
*
* 授权方式:啤酒协议――你可以在负全责的前提下自由使用本软件,只要求你保留我的署名;
* 如果某天我们见面了,你可以请我喝一杯啤酒作为回报。
*
* 作者署名:bayern.leo@gmail.com
*
* 2007年2月7日
*
*/
运行步骤:
(1)$ ./CWebShell key_word_to_exit
(2)上一步当然是在服务器端,正常运行后会提示监听端口,如 “Listening at 1025...”
(3)在浏览器地址栏输入
http://(机器名或IP地址):端口/SHELL命令,即可执行SHELL操作,例如:
http://127.0.0.1:1025/pwd ,回车后即打印当前目录。
请不要把这个鸿毛级的服务器和APACHE相比。
Friday, February 2, 2007 2:36:42 PM
随手记
因为工作需要,我要用ASP开发一个简单应用系统,偏偏要在APACHE上跑,用APASP来支持。
这套东东算了稳定了几天了,小结一下对APASP的期望。
因为用APASP的经验还不丰富,以下这些,不知是因为APASP的不足,还是因为我太过才疏学浅。
SESSION
居然只支持一个SESSION变量,多加一个都会出错。而且这个变量会准时TIMEOUT,无论有多么活动,二十分钟后这个变量即会为空。
APPLICATION
也只支持一个变量。
INCLUDE
好象帐该算在APACHE头上了,害得我只能把一堆函数一个文件一个文件地加上去,改的时候,一个文件一个文件地改……
不幸中的万幸是我做的这套东东,规模还是非常之小。
如果我需要做得更大,是不是会得出一个结论――ASP在APACHE上跑根本就是白日梦?