文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>OpenSSL库中des加密函数库的使用

OpenSSL库中des加密函数库的使用

时间:2010-05-26  来源:harrypolt2008

OpenSSL库中DES加密函数库的使用     DES是一种可以实现数据加密和解密的对称算法,在OpenSSL中有DES算法的具体实现,由于是是开源代码,你不需要任何借口就可以使用它们,当然最好你也遵守和它一样的开源协议。在很多的Linux系统中已经安装了openssl函数库,如果你的Linux系统没有安装OpenSSL函数库的话,你需要安装它们,这样你才可以使用此函数库。当然,如果你需要查看它们的使用方法的话,你还需要安装此函数的开发文档,这样你就可以利用man手册来方便的了解此函数库了。下面是本人利用此DES算法API实现的一个简单的数据加密和解密测试程序,希望能对学习如何使用此DES函数库的朋友们有所帮助,错误之处,请不吝赐教。后面附加了一个简单的makefile文件。     /*main文件*/    #include <stdio.h>
#include <openssl/des.h> /*DES算法头文件*/

#define DEBUG_PRINT
  /*初始化需要加密的数据*/
void init_input(const_DES_cblock input)
{
     input[0] = 0;
     input[1] = 1;
     input[2] = 2;
     input[3] = 3;
     input[4] = 4;
     input[5] = 5;
     input[6] = 6;
     input[7] = 7;
}

int main(void)
{
     int ret = 0;
     int i = 0;
     DES_cblock key; /*密钥*/
     DES_key_schedule key_schedule; /*将密钥转化保存的数据结构,用于加密*/
     DES_key_schedule key_schedule1; /*解密时使用*/
     const_DES_cblock input; /*需要加密的数据*/
     DES_cblock output; /*加密后的数据*/
       init_input(input); /*初始化数据*/
     memset(output, 0, 8); /*清零*/

     ret = DES_random_key(&key); /*获得随机密钥*/
     ret = DES_set_key_checked(&key, &key_schedule); /*转化密钥*/
       DES_ecb_encrypt(&input, &output, &key_schedule, 1); /*加密数据*/
     memset(input, 0, 8); /*清零*/
     ret = DES_set_key_checked(&key, &key_schedule1); /*转换密钥*/
     DES_ecb_encrypt(&output, &input, &key_schedule1, 0); /*解密*/
       return 0;
}
    /*makefile*/ CC=gcc
CFLAGS=-lssl
all: main main: main.c
 $(CC) -o $@ $^ $(CFLAGS)
clean:
 rm -rf main
相关阅读 更多 +
排行榜 更多 +
飙车地下城市赛车

飙车地下城市赛车

赛车竞速 下载
爬坡摩托

爬坡摩托

赛车竞速 下载
超速前进赛车传奇

超速前进赛车传奇

赛车竞速 下载