C语言必背100代码系列文章目录
核心内容:Hello World、条件判断、循环结构、数组基础、函数定义等。
核心内容:数组排序、字符串处理、多维数组、字符匹配、内存拷贝等。
核心内容:指针运算、动态内存分配、结构体指针、函数指针、内存泄漏检测等。
核心内容:阶乘递归、汉诺塔、分治算法、回溯算法、动态规划基础等。
核心内容:链表、栈、队列、二叉树、哈希表、图的基本操作。
核心内容:文本文件读写、二进制文件操作、日志管理、CSV/JSON解析等。
核心内容:快速幂、素数测试、进制转换、矩阵运算、蒙特卡洛模拟等。
核心内容:进程控制、线程同步、信号处理、套接字编程、系统调用封装等。
核心内容:TCP/UDP通信、HTTP请求、WebSocket、SSL/TLS加密、网络抓包等。
第十篇:综合项目与工具
第十篇:安全与加密技术
你的代码还在‘裸奔’吗?从SSL/TLS加密到量子级防护,本文深度拆解10大硬核安全技术!手把手教你用Canary防御溢出攻击、用bcrypt守住密码库,更有SYN Cookie反制端口扫描、HSM模块隔离核心密钥。无论是CTF选手还是企业安全官,这篇实战指南都能让你秒变防御大师——点击收藏,让黑客绕道走!
1. SSL/TLS客户端(OpenSSL)
c
#include <stdio.h> |
|
#include <openssl/ssl.h> |
|
#include <openssl/err.h> |
|
#define HOST "example.com" |
|
#define PORT 443 |
|
int main() { |
|
SSL_CTX *ctx; |
|
SSL *ssl; |
|
int sock; |
|
struct sockaddr_in addr; |
|
// 初始化OpenSSL |
|
SSL_library_init(); |
|
OpenSSL_add_all_algorithms(); |
|
SSL_load_error_strings(); |
|
ctx = SSL_CTX_new(TLS_client_method()); |
|
// 创建Socket |
|
sock = socket(AF_INET, SOCK_STREAM, 0); |
|
addr.sin_family = AF_INET; |
|
addr.sin_port = htons(PORT); |
|
inet_pton(AF_INET, HOST, &addr.sin_addr); |
|
connect(sock, (struct sockaddr *)&addr, sizeof(addr)); |
|
// 创建SSL连接 |
|
ssl = SSL_new(ctx); |
|
SSL_set_fd(ssl, sock); |
|
if (SSL_connect(ssl) != 1) { |
|
ERR_print_errors_fp(stderr); |
|
return 1; |
|
} |
|
// 验证证书 |
|
X509 *cert = SSL_get_peer_certificate(ssl); |
|
if (cert == NULL) { |
|
printf("No certificate presented!\n"); |
|
return 1; |
|
} |
|
X509_free(cert); |
|
// 发送HTTPS请求 |
|
const char *request = "GET / HTTP/1.1\r\nHost: example.com\r\n\r\n"; |
|
SSL_write(ssl, request, strlen(request)); |
|
// 接收响应 |
|