DES加密程序实现,UNIX/Linux的接口实现

今天花了一两个小时写这个程序,忍不住把她发到自己的博客上与人分享分享,算是作为整理一下自己的思路。如果认为写得太菜的话请各位高手见谅见谅。

这里演示了我自己用libtomcrypt-0.96加密库写的一个DES加密小程序,此DES程序只在Ubuntu10.10 (Linux 2.6.35-28-generic #49-Ubuntu SMP Tue Mar 1 14:40:58 UTC 2011) 测试过,程序是用标准C写的,如果没有意外发生的话应该可以用支持标准C的编译器编译通过。个人懒得把全部文件放上,也免得只是一个简单的程序搞得复杂,只把我的设计思路放上就好了。我想代码就是最好的说明了。

PS: 记得如果你发现BUG的话记得告知一声, 此程序还没有经过完整测试, 只测试了对ASCII码和二进制文件的输入, 所以我假设为可以对所有文件加密.

用户接口, README 文件上的Usage

INSTALL        Linux: $ make mydes        Windows: Create a project name 'mydes' and include mydes.c mydes_lib.*,             and G__des.h des.h file in libtomcrypt-0.96    Usage    $ ./mydes -[k|e|d]        # generate des key        $ ./mydes -k < .key > .key.des        #! ./mydes -k abcdabcd > .key.des # Cause interface is not alignment        # encrypt plaintext, ASCII or Binary file        $ ./mydes -e < mesg > mesg.des        # decrypt ciphertext, ASCII or Binary file        $ ./mydes -d < mesg.des > mesg    ./od        # convert mesg/mesg.des to char|O|HEX        $ ./od -[c|o|x]     # e.g.        $ ./od -x < mesg.des > mesg.des.hex   

Makefile

EXE = test_des mydes od    CC = gcc   #CFLAGS = -g -Wall -ansi    INCLUDE = -I.    all: $(EXE)   # mydes    mydes: mydes.o mydes_lib.o G__des.o            $(CC) -o $@ $^    mydes.o: mydes.c            $(CC) $(INCLUDE) $(CFLAGS) -c $<    mydes_lib.o: mydes_lib.c mydes_lib.h            $(CC) $(INCLUDE) $(CFLAGS) -c $<   # od    od:     od.c            $(CC) $(INCLUDE) $(CFLAGS) $< -o $@   # test_des    G__des.o: G__des.c des.h            $(CC) $(INCLUDE) $(CFLAGS) -c $<    test_des.o: test_des.c            $(CC) $(INCLUDE) $(CFLAGS) -c $<    test_des: test_des.o G__des.o            $(CC) -o $@ $^    test:            ./mydes -k < .key > .key.des    # generate key            ./mydes -e < mesg > mesg.des    # encrypt plaintext            ./mydes -d < mesg.des > mesg    # decrypt ciphertext    clean:            rm -f *.o *.obj    reclean: clean            rm -f $(EXE)  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwxwpp.html