Linux可以用sha1sum命令来校验文件的sha1值,Windows下也不乏sha1校验的工具。其实自己实现一个简单的sha1sum程序并不难,只要知道sha1算法就可以了,不知道也不要紧,复制粘贴总会吧。
下面就是我“复制粘贴”出来的sha1sum程序,纯ANSI C实现。
[download id=56]
Linux可以用sha1sum命令来校验文件的sha1值,Windows下也不乏sha1校验的工具。其实自己实现一个简单的sha1sum程序并不难,只要知道sha1算法就可以了,不知道也不要紧,复制粘贴总会吧。
下面就是我“复制粘贴”出来的sha1sum程序,纯ANSI C实现。
[download id=56]
有base64_encode自然有base64_decode,也是定义在PHP源码的ext\standard\base64.c文件中,仍然需要注意内存泄露。
(更多…)最近写的程序要用到base64_encode,网上一搜“C语言 base64”出来一堆代码,但是我向来是不惮以最坏的恶意来推测这些代码的。于是看了一下PHP源码,base64_encode函数定义在ext\standard\base64.c文件中。我把它改写了一下,需要注意内存是动态分配的,使用完之后记得free掉,否则会造成内存泄露。
(更多…)最近在看PHP的C源码,经常发现在函数定义中莫名其妙地出现一个没有任何声明的return_value变量,Google了一下才知道,这个变量是通过宏展开的。
(更多…)在Visual C++中新建一个Console Application工程,添加一个.c文件,代码如下:
#pragma comment(linker, "/Entry:demon") void demon() { __asm ret; }
严格的说这好像已经不是C程序了,而且和编译器有关。没错,这只是标题党。