关闭

[置顶] 图文详解 -- HTTPS站点的SSL证书 ,扩展SSL证书,密钥交换和身份验证机制汇

在客户端(这里指浏览器,下同)与 facebook 网站服务器进行 SSL 握手的过程中(现在称为TLS 握手,进行TLS握手前的TCP 三次握手必不可少,这里描述的场景假设已经完成了 TCP 三次握手): 首先两者协商使用什么协议连接: 第一次“往”:由客户端在一个类型为 Client Hello 的 TLS 握手包中携带客户端运行的TLS 协...
阅读(652) 评论(0)

[置顶] CentOS6.5下openssl加密解密及CA自签颁发证书详解

前言    openSSL是一款功能强大的加密工具、我们当中许多人已经在使用openSSL、用于创建RSA私钥或证书签名请求、不过、你可知道可以使用openSSL来测试计算机速度?或者还可以用它来对文件或消息进行加密。 正文    openssl是一个开源程序的套件、这个套件有三个部分组成、一是libcryto、这是一个具有通用功能的加密库、里面实现了众多的加密库、二是libssl、这个...
阅读(1381) 评论(0)

数据库用什么样的密码HASH算法才是最安全的?

以下是在公司内部技术分享时总结的,希望对你有用: 我们数据库的权限管理十分严格,敏感信息开发工程师都看不到,密码明文存储不行吗? 不行。存储在数据库的数据面临很多威胁,有应用程序层面、数据库层面的、操作系统层面的、机房层面的、员工层面的,想做到百分百不被黑客窃取,非常困难。 如果密码是加密之后再存储,那么即便被拖库,黑客也难以获取用户的明文密码。可以说,密码加密存储是用户账户系统的底裤,它的...
阅读(71) 评论(0)

Thrift之TProtocol类体系原理及源码详细解析之紧凑协议类TCompactProtocolT

这个协议类采用了zigzag 编码,这种编码是基于Variable-length quantity编码提出来的,因为Variable-length quantity编码对于负数的编码都需要很长的字节数,而zigzag 编码对于绝对值小的数字,无论正负都可以采用较少的字节来表示,充分利用了 Varint技术。所以这个协议类采用zigzag 编码可以节省传输空间,使数据的传输效率更高。至于zigzag...
阅读(62) 评论(0)

Thrift之TProtocol类体系原理及源码详细解析之JSon协议类TJSONProtocol

转载: http://www.xuebuyuan.com/299136.html JSON (JavaScript Object Notation)是一种数据交换格式,是以JavaScript为基础的数据表示语言,是在以下两种数据结构的基础上来定义基本的数据描述格式的:1) 含有名称/值对的集合;2) 一个有序的列表。对于 JSON,其部分数据结构的BNF 定义如下所示。形如{“name”:...
阅读(75) 评论(0)

Thrift结构分析及增加取客户端IP功能实现

1.       前言 分析Thrift的结构动机是为了实现服务端能取到客户端的IP,因此需要对它的结构、调用流程有些了解。另外,请注意本文针对的是TNonblockingServer,不包含TThreadPoolServer、TThreadedServer和TSimpleServer。 2.       示例Service service EchoService...
阅读(94) 评论(0)

ECDSA签名+验签

ECDSA签名每次结果不同。      原因:ECDSA签名过程中混入随机值,生成签名结果不同。     公钥证书验签没问题。 1. 签名过程     假设要签名的消息是一个字符串:“Hello World!”。DSA签名的第一个步骤是对待签名的消息生成一个消息摘要。不同的签名算法使用不同的消息摘要算法。比如,DSS使用SHA1来生成160比特的摘要,而ECDSA256使用SHA256...
阅读(282) 评论(0)

Superfish事件:自签名SSL证书惹的祸 分析

个人看法,联想 使用了Superfish 自签名的根证书,,更夸张的是,根证书私钥是个简单字符串,而且存在客户端也就是说,root.crt + root.key 在用户电脑上,实现https劫持,工作原理应该类似与 Fiddler  在本机把自己的跟证书嵌入系统可信区域。     可是根证书私钥使用了较简单内容,导致一旦被破解发现,黑客会使用联想发布的根证书+私钥,签发自己的黑客证书。...
阅读(117) 评论(0)

nginx双证书配置

user  root; worker_processes 2; error_log  logs/error.log debug;    # 日志级别 #pid        logs/nginx.pid; events {     use epoll;     worker_connections  1024; } http {     include       mim...
阅读(237) 评论(0)

OpenSSL 1.1.0f 25 May 2017 OpenSSL 1.0.1e-fips 11 Feb 2013性能比较

[root@localhost nginx]# openssl speed  aes rsa ecdh  Doing aes-128 cbc for 3s on 16 size blocks: 16679878 aes-128 cbc's in 3.00s Doing aes-128 cbc for 3s on 64 size blocks: 4601182 aes-128 cbc's in ...
阅读(265) 评论(0)

nginx-1.12.1 + openssl-1.1.0f 静态编译

目录 ---                  nginx-1.12.1                 openssl-1.1.0f                 zlib-1.2.11                 pcre-8.40 cd ./nginx-1.12.1 静态编译安装nginx+openssl命令 ./configure --prefix=/usr/local...
阅读(370) 评论(0)

windows下使用thrift编译+示例+详解解决坑

thrift 在windows下使用略坑! 首先 坚决不要用...
阅读(340) 评论(0)

linux 定时器

在开发高性能服务器中,定时器总是不可或缺的。 常见的定时器实现三种,分别是:排序链表,最小堆,时间轮。 之前用的定时器是基于最小堆的,在定时器数量不多时可以使用, 目前公司用的框架中的定时器是基于简单时间轮的,但是为了支持大范围的时间,每个齿轮的所维护的链表为有序链表,每次插入时先mod出spoke,再从头遍历链表以便将定时器插入到合适位置, 所以本质上还是基于有序链表的。时间复杂度并未减少。...
阅读(116) 评论(0)

Muduo网络编程 时间轮 Timing wheel 踢掉空闲连接

通过boost::circular_buffer + boost::unordered_set来模拟轮盘。     typedef boost::unordered_set Bucket;     typedef boost::circular_buffer WeakConnectionList;     WeakConnectionList connectionBuckets_...
阅读(203) 评论(0)

基于漏桶(Leaky bucket)与令牌桶(Token bucket)算法的流量控制

基于漏桶(Leaky bucket)与令牌桶(Token bucket)算法的流量控制 常用的流控算法 漏桶(Leaky bucket) 再看看令牌桶(Token bucket) Guava官方文档-RateLimiter类 漏桶(Leaky bucket)与令牌桶(Token bucket)算法有什么区别...
阅读(200) 评论(0)

muduo网络库定时器的实现

一:函数介绍 常见的与时间相关的函数有:sleep,alarm,usleep,nanosleep,clock_nanosleep,gettimer/settitimer,timer_create/timer_settime/timer_gettime/timer_delete,还有muduo使用的timerfd_create/timerfd_gettime/timerfd_settime函数...
阅读(106) 评论(0)

muduo源码分析--我对muduo的理解

分为几个模块 EventLoop、TcpServer、Acceptor、TcpConnection、Channel等 对于EventLoop来说: 他只关注里面的主驱动力,EventLoop中只关注poll,这类系统调用使得其成为Reactor模式,EventLoop中有属于这个loop的所有Channel,这个loop属于哪一个Server.   几个类存在的意义: ...
阅读(153) 评论(0)

Muduo网络库源码分析(二) 定时器TimeQueue,Timer,TimerId

首先,我们先要明白为什么需要设计这样一个定时器类? 在开发Linux网络程序时,通常需要维护多个定时器,如维护客户端心跳时间、检查多个数据包的超时重传等。如果采用linux的SIGALARM信号实现,则会带来较大的系统开销,且不便于管理。 Muduo 的 TimerQueue 采用了最简单的实现(链表)来管理定时器,它的效率比不上常见的 binary heap 的做法,如果程序...
阅读(115) 评论(0)

Muduo网络库源码分析(四)EventLoopThread和EventLoopThreadPool的封装

muduo的并发模型为one loop per thread+ threadpool。为了方便使用,muduo封装了EventLoop和Thread为EventLoopThread,为了方便使用线程池,又把EventLoopThread封装为EventLoopThreadPool。所以这篇博文并没有涉及到新鲜的技术,但是也有一些封装和逻辑方面的注意点需要我们去分析和理解。 EventLoop...
阅读(125) 评论(0)

Muduo网络库源码分析(六)TcpConnection 的生存期管理

TcpConnection是使用shared_ptr来管理的类,因为它的生命周期模糊。TcpConnection表示已经建立或正在建立的连接,建立连接后,用户只需要在上层类如TcpServer中设置连接到来和消息到来的处理函数,继而回调TcpConnection中的 setConnectionCallback和setMessageCallback函数,实现对事件的处理。用户需要关心的事件是有限的,...
阅读(99) 评论(0)

Muduo网络库源码分析(三)线程间使用eventfd通信和EventLoop::runInLoop系列函数

先说第一点,线程(进程)间通信有很多种方式(pipe,socketpair),为什么这里选择eventfd? eventfd 是一个比 pipe 更高效的线程间事件通知机制,一方面它比 pipe 少用一个 file descripor,节省了资源;另一方面,eventfd 的缓冲区管理也简单得多,全部“buffer” 只有定长8 bytes,不像 pipe 那样可能有不定长的真正...
阅读(190) 评论(0)

muduo网络库源码阅读Step by Step

一般写服务端程序都需要有一个称手的网络库来帮我们处理琐碎的网络通信细节,比如连接的建立、关闭,读取数据,发送数据,接收、发送缓冲区的管理等,常用的C/C++网络库有libevent,asio,libev,我们项目组使用的是muduo网络库。muduo是陈硕写的,基于非阻塞IO和事件驱动的现代C++网络库,原生支持one loop per thread模型(即reactor模型),它适合开发Li...
阅读(223) 评论(0)
155条 共8页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:109645次
    • 积分:1414
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:146篇
    • 译文:0篇
    • 评论:13条
    最新评论