博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

OpenSSL 编程 - DES

Posted on 2008-03-14 15:48  NadOo  阅读(4005)  评论(1编辑  收藏  举报
DES
/*
gcc -o des-basic des-basic.c -lcrypto
*/

#include 
<stdio.h>
#include 
<openssl/des.h>

int main(int argc,char **argv)
{
    DES_cblock key;
    
/* DES_random_key(&key); */ /* generate a random key */
    DES_string_to_key(
"pass"&key);
    
    DES_key_schedule schedule;
    DES_set_key_checked(
&key, &schedule); 
    
    const_DES_cblock input 
= "hehehe";
    DES_cblock output;

    printf(
"cleartext:%s ", input);
    
    DES_ecb_encrypt(
&input, &output, &schedule, DES_ENCRYPT);
    printf(
"Encrypted! ");

    printf(
"ciphertext:");
    
int i;
    
for (i = 0; i < sizeof(input); i++)
         printf(
"%02x", output[i]);
    printf(
" ");
    
    DES_ecb_encrypt(
&output, &input, &schedule, DES_DECRYPT);
    printf(
"Decrypted! ");
    printf(
"cleartext:%s ", input);
    
    
return 0;
}