- 博客(12)
- 收藏
- 关注
原创 openssl中随机数产生的原理
概述第一步用RAND_poll()初始化MD_DIGEST_LENGTH长度的全局变量md。1.1 初始化过程用读取/dev/urandom /dev/urandom等方式读取原始的32字节,以RAND_add的方式将结果存入全局数组md。(UNIX的实现过程)1.2 然后RAND_add上pid、uid、time等数据。RAND_add “…”计算pid、time、FILETIME、...
2018-10-24 08:00:52
3468
原创 同态加密技术总结
同态加密技术总结同态加密的概念同态加密(Homomorphic Encryption)是很久以前密码学界就提出来的一个问题。早在1978年,Ron Rivest, Leonard Adleman, 以及Michael L. Dertouzos就以银行为应用背景提出了这个概念。其中Ron Rivest和Leonard Adleman分别就是著名的RSA算法中的R和A。同态加密是基于数学难题的...
2018-09-19 19:55:39
47001
12
原创 ssl双向验证
一般情况下ssl加密连接都只是单向认证,是客户端验证服务端的证书。例如常见的web服务,是客户端验证服务端的证书,防止遇到假冒的网站,正规的网站都有权威机构签名的证书,浏览器会帮助用户校验服务端的证书,如果证书是可信的,说明网站是可信的可如果证书不可信,浏览器会有提示,提示一般在地址栏前面有个锁形符号。...
2018-08-12 16:09:56
1217
原创 回溯法
部分转自:https://blog.youkuaiyun.com/goforitaaa/article/details/80445404 回溯法回溯法有“通用解题法”之称,用它可以系统的搜索问题的所有解。通俗的说,用回溯法可以找到问题的所有解。它在问题的解空间树中,按照深度优先搜索策略,从根节点出发搜索解空间树。算法搜索至解空间树的任一节点时,先判断该节点是否包含问题的解,...
2018-08-09 08:50:21
302
转载 通配符匹配---------很棒的思路
bool isMatch(const char *s, const char *p) { const char* star=NULL; const char* ss=s; while (*s){ //advancing both pointers when (both characters match) or ('?' fo...
2018-07-18 08:41:35
488
原创 处理变长参数的利器------valist
1. valist 简介C语言标准库中头文件stdarg.h声明了一组能够变长参数的宏。主要有:1、va_list 用来声明一个表示参数表中各个参数的变量。 2、va_start 初始化一个指针来指向变长参数列表的头一个变量(注意,…只能出现在参数表的最后) 3、va_arg每次调用时都会返回当前指针指向的变量,并将指针挪至下一个位置,参数的类型需要在这个调用的第二个参数来指定,va_...
2018-06-23 10:45:54
945
原创 Nginx有多级代理时,获取用户的真实IP地址
在web服务器前面设置代理服务器时,从nginx模块中取$remote_addr值为上一级代理的IP地址,而非真实客户端的IP地址。为了获取真实客户端IP地址,可以使用nginx自带的realip模块。此模块可将真实客户端IP地址设置进HTTP请求头中,以便后端的web服务器获取。下面是一级代理 nginx + nginx 时的设置步骤示例:第一步:安装realip模块在nginx的安...
2018-05-21 19:36:56
2074
原创 基于openssl建立tls双向验证连接方法
1. 概述本文介绍了如何基于openssl库建立tls加密通道连接。2. 步骤X509 *cert = NULL; // 客户端公钥证书指针EVP_PKEY *key = NULL; // 客户端私钥证书指针const SSL_METHOD *meth = NULL;g_bio_err = dup_bio_err(FORMAT_TEXT);SS...
2018-05-07 22:31:48
3314
1
原创 宏定义LOG分级打印
宏定义LOG分级打印到标准输出stdout,日志自动打印所在函数名、文件名、行号/*********************************************** LOG DEFINE ***********************************************/// OFF FATAL E...
2018-04-26 10:34:39
1620
原创 RPC使用小结
1. 案例描述与分析 两台服务器A,B,一个应用部署在A服务器上,想要调用B服务器上应用提供的函数/方法,由于不在一个内存空间,不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。2. 解决方案RPC(Remote Procedure Call) RPC 的主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。 RPC的优...
2018-04-26 08:11:28
1477
1
原创 pkg-config介绍与使用
关键词:Linux、C/C++、编译链接摘 要:本文介绍了Linux下的编译链接辅助工具pkg-config,其可以带来编译和连接界面的统一。1. 问题描述与分析一般来说,如果库的头文件不在 /usr/include 目录中,那么在编译的时候需要用 -I 参数指定其路径。由于同一个库在不同系统上可能位于不同的目录下,用户安装库的时候也可以将库安装在不同的目录下,所...
2018-04-10 23:13:43
2064
转载 markdown 使用方法备查
markdown 使用方法备查快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl + Q插入链接 Ctrl + L插入代码 Ctrl + K插入图片 Ctrl + G提升标题 Ctrl + H有序列表 Ctrl + O无序列表 Ctrl + U横线 Ctrl + R撤销 Ctrl + Z重做
2018-04-10 22:59:08
288
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人