最近工作中用到特定的加解密技术,所以想了解下通用加解密技术。
引用:
http://blog.csdn.net/shuanyancao/article/details/8985963http://blog.gpjtag.com/?p=18
一、aes篇:
网上找了份代码,makfile中 -lssl,报错如下
aes.c:(.text.startup+0x24d):对‘RAND_pseudo_bytes’未定义的引用
aes.c:(.text.startup+0x25f):对‘RAND_pseudo_bytes’未定义的引用
aes.c:(.text.startup+0x362):对‘AES_set_encrypt_key’未定义的引用
aes.c:(.text.startup+0x388):对‘AES_cbc_encrypt’未定义的引用
aes.c:(.text.startup+0x468):对‘AES_set_decrypt_key’未定义的引用
aes.c:(.text.startup+0x486):对‘AES_cbc_encrypt’未定义的引用
nm -D libssl.so,显示库中没有定义,就觉得奇怪。网上都是链接 的ssl的库,我的ssl库为啥 没有这些函数的定义??
开始以为安装的libssl.so有问题。换源apt-get install 了几次还是这样。
最后没办法,下了份openssl的源码,自己编译库, nm 发现libssl.a中也没有如上函数的 定义,只有引用 。突然发现libcryto.a中有这些函数。原来还需要链接libcrypto库!!!网上的帖子基本都没有说明,都说链接ssl。。。。。。
makefile中 -lssl -lcrypto -ldl ,编译通过。
==================================================================================