91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 9KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-06-12
  • 語言: C/C++
  • 標簽: rsa,3des??

資源簡介

基于openssl庫實現的在linux平臺上的公鑰加密、私鑰解密,sslsocket服務器,sslsocketlient客戶端,3des加密解密

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?

#define?MAXBUF?1024

void?ShowCerts(SSL?*?ssl)
{
????X509?*cert;
????char?*line;
????cert?=?SSL_get_peer_certificate(ssl);
????if?(cert?!=?NULL)?{
????????printf(“數字證書信息:\n“);
????????line?=?X509_NAME_oneline(X509_get_subject_name(cert)?0?0);
????????printf(“證書:?%s\n“?line);
????????free(line);
????????line?=?X509_NAME_oneline(X509_get_issuer_name(cert)?0?0);
????????printf(“頒發者:?%s\n“?line);
????????free(line);
????????X509_free(cert);
????}?else?{
????????printf(“無證書信息!\n“);
????}
}

int?main(int?argc?char?**argv)
{
????int?sockfd?len;
????struct?sockaddr_in?dest;
????char?buffer[MAXBUF?+?1];
????SSL_CTX?*ctx;
????SSL?*ssl;

????if?(argc?!=?3)?{
????????printf(“參數格式錯誤!正確用法如下:\n\t\t%s?IP地址?端口\n\t比如:\t%s?127.0.0.1?80\n此程序用來從某個“
????????????????“IP?地址的服務器某個端口接收最多?%d?個字節的消息.\n“?argv[0]?argv[0]?MAXBUF);
????????exit(0);
????}

????/*SSL初始化*/
????SSL_library_init();
????OpenSSL_add_all_algorithms();
????SSL_load_error_strings();
????ctx?=?SSL_CTX_new(SSLv3_client_method());

????if?((sockfd?=?socket(AF_INET?SOCK_STREAM?0))?????????perror(“Socket“);
????????exit(errno);
????}

????bzero(&dest?sizeof(dest));
????dest.sin_family?=?AF_INET;
????dest.sin_port?=?htons(atoi(argv[2]));
????if?(inet_aton(argv[1]?(struct?in_addr?*)?&dest.sin_addr.s_addr)?==?0)?{
????????perror(argv[1]);
????????exit(errno);
????}

????if?(connect(sockfd?(struct?sockaddr?*)?&dest?sizeof(dest))?!=?0)?{
????????perror(“Connect?“);
????????exit(errno);
????}
????printf(“connectd?server?successly\n“);

????ssl?=?SSL_new(ctx);
????SSL_set_fd(ssl?sockfd);
????if?(SSL_connect(ssl)?==?-1)?{
????????ERR_print_errors_fp(stderr);
????}?else?{
????????printf(“Connected?with?%s?encryption\n“?SSL_get_cipher(ssl));
????????ShowCerts(ssl);
????}

????bzero(buffer?MAXBUF?+?1);
????len?=?SSL_read(ssl?buffer?MAXBUF);
????if?(len?>?0)?{
????????printf(“接收消息成功:‘%s‘,共%d個字節的數據\n“?buffer?len);
????}?else?{
????????printf(“消息接收失敗!錯誤代碼是%d,錯誤信息是‘%s‘\n“?errno?strerror(errno));
????????goto?finish;
????}
????bzero(buffer?MAXBUF?+?1);
????strcpy(buffer?“from?client->server“);

????len?=?SSL_write(ssl?buffer?strlen(buffer));
????if?(len?????????printf(“消息‘%s‘發送失敗!錯誤代碼是%d,錯誤信息是‘%s‘\n“?buffer?errno?strerror(errno));
????}?else?{
????????printf(“消息‘%s‘發送成功,共發送了%d個字節!\n“?buffer?len);
????}

finish:
????SSL_shutdown(ssl);
????SSL_free(ssl);
????close(sockfd);
????SSL_CTX_free(ctx);
????return?0;
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????2794??2017-12-01?16:34??client.c
?????文件????????4671??2017-12-01?16:34??client1.c
?????文件????????3140??2017-12-01?16:32??des3.c
?????文件????????4000??2017-12-01?16:32??rsa.c
?????文件????????3603??2017-12-01?16:33??server.c
?????文件????????4594??2017-12-01?16:33??server1.c

評論

共有 條評論

相關資源