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

    1. EXE = test_des mydes od   
    2. CC = gcc  
    3. #CFLAGS = -g -Wall -ansi   
    4. INCLUDE = -I.   
    5. all: $(EXE)  
    6. # mydes   
    7. mydes: mydes.o mydes_lib.o G__des.o   
    8.         $(CC) -o $@ $^   
    9. mydes.o: mydes.c   
    10.         $(CC) $(INCLUDE) $(CFLAGS) -c $<   
    11. mydes_lib.o: mydes_lib.c mydes_lib.h   
    12.         $(CC) $(INCLUDE) $(CFLAGS) -c $<  
    13. # od   
    14. od:     od.c   
    15.         $(CC) $(INCLUDE) $(CFLAGS) $< -o $@  
    16. # test_des   
    17. G__des.o: G__des.c des.h   
    18.         $(CC) $(INCLUDE) $(CFLAGS) -c $<   
    19. test_des.o: test_des.c   
    20.         $(CC) $(INCLUDE) $(CFLAGS) -c $<   
    21. test_des: test_des.o G__des.o   
    22.         $(CC) -o $@ $^   
    23. test:   
    24.         ./mydes -k < .key > .key.des    # generate key   
    25.         ./mydes -e < mesg > mesg.des    # encrypt plaintext   
    26.         ./mydes -d < mesg.des > mesg    # decrypt ciphertext   
    27. clean:   
    28.         rm -f *.o *.obj   
    29. reclean: clean   
    30.         rm -f $(EXE)  
    • 1
    • 2
    • 3
    • 4
    • 下一页

    相关内容