C的openSSL加密使用

hnhn22 贡献于2014-11-06

作者 juun  创建于2013-12-04 03:17:00   修改者juun  修改于2013-12-04 03:17:00字数1328

文档摘要:精通PKI网络安全证技术与编程实现一书中的例子代码有错原书申明加密字符
关键词:

openSSL学习笔记 加密字符串 分类: 随笔 2009-12-29 16:14 861人阅读 评论(2) 收藏 举报 加密编程null网络 在精通PKI网络安全证技术与编程实现一书中的例子代码有错 原书 申明加密字符 char *msg="Hello OpenSSL";  rv=EVP_EncryptUpdate(&ctx,out,&outl,msg,strlen(msg)); 在vc6++ 下编译不能通过   应改为  char msg[]="Hello OpenSSLjkljllkl";  rv=EVP_EncryptUpdate(&ctx,out,&outl,(const unsigned char *)msg,strlen(msg));   [cpp] view plaincopyprint? 1. #include    2. #include    3. #include    4. #include    5. #include    6.    7. void tEVP_Encrypt()   8. {   9.     unsigned char key[EVP_MAX_KEY_LENGTH];   10.     unsigned char iv[EVP_MAX_KEY_LENGTH];   11.     EVP_CIPHER_CTX ctx;   12.     unsigned char out[1024];   13.     int outl;   14.     int outltmp;   15.     char msg[]="Hello OpenSSLjkljllkl";   16.     int rv;   17.     int i;   18.    19.     for(i=0;i<24;i++)   20.     {   21.         key[i]=i;   22.     }   23.     for (i=0;i<8;i++)   24.     {   25.         iv[i]=i;   26.     }   27.    28.     EVP_CIPHER_CTX_init(&ctx);   29.     rv=EVP_EncryptInit_ex(&ctx,EVP_des_ede3_cbc(),NULL,key,iv);   30.     if(rv != 1){   31.         printf("Err/n");   32.         return;   33.     }   34.     rv=EVP_EncryptUpdate(&ctx,out,&outl,(const unsigned char *)msg,strlen(msg));   35.     if (rv !=1)   36.     {   37.         printf("Err/n");   38.         return;   39.     }   40.     rv=EVP_EncryptFinal_ex(&ctx,out+outl,&outltmp);   41.     if (rv !=1)   42.     {   43.         printf("Err/n");   44.         return;   45.     }   46.     outl=outl+outltmp;   47.     printf("原文为:%S/n",msg);   48.     printf("密文长度: %d/n密文数据:/n",outl);   49.     for (i=0;i

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档