2020-05-03 06:32
⁄ 工业·编程
⁄ 共 2285字
随着《密码法》密码法的颁布与实施,国密的应用及推广终于有法可依。而对于应用国密其中的一个重要组成部分----国密HTTPS通信也应运而生。为了大家更好的了解国密HTTPS相关的知识,接下来打算和大家一起分享关于国密HTTPS的那些事。聊一聊关于HTTPS通信协议本身;聊一聊为什么要有这些协议;以及国密SSL协议到底又是如何对一个网站进行数据加密的;国密SSL协议中又使用了哪些国密算法;国密的双证书和传统的RSA证书单证书在握手...
HTTPS, 国密算法阅读全文
2020-05-02 06:22
⁄ 工业·编程
⁄ 共 440字
国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。
SM1 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。
采用该算法已经研制了系列芯片、智能IC卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。
SM2为非对称加密,基于ECC。该算法已公...
加密解密, 国密算法阅读全文
2020-05-01 07:05
⁄ 工业·编程
⁄ 共 923字
just do it.
我自己的经验是: 技术一定要固化成某种方便调用的库,才算是真正掌握了。否则,时间一长,就会遗忘,成为遗失的技术。
知道一种c/c++技术可能比现有的 流行技术更优,弄懂主要思路后,就赶紧去实现一遍,保存在 c/c++ 库里,实现的时候从底层数据/代码流的角度,或者说从cpu硬件的角度,去分析可能的瓶颈,然后不断的修改源码,反复的测试,最终都会有非常好的性能,原因在于长期积累的经验,反复优化,哪天又想到...
程序员阅读全文
2020-04-30 06:52
⁄ 工业·编程
⁄ 共 247字
ACID的C和CAP的C是不一样的。
数据库教科书里提炼的,ACID的C指的是从业务层面定义约束,例如银行转账场景,转入和转出金额要平衡,又或者外键指向的行必须存在,这个C一方面依赖数据库的保证,例如原子性,也依赖于业务特性和业务层代码实现。
CAP的C是现代分布式系统中大家经常谈到的一致性,其内涵和外延比较丰富。例如,ACID中的I,在分布式系统中如何保证并发Query的隔离级别Isolation,可以认为是一种一致性;多副本间达...
数据库阅读全文
2020-04-29 06:48
⁄ 工业·编程
⁄ 共 1515字
首先要向AWS Aurora的创新性致敬!Aurora通过计算节点和存储节点分离,计算节点scale up,存储节点scale out的理念将公有云的关系数据库产品推向了一个新的高度。
在设计方法上,阿里云的PolarDB和Aurora走了不一样的路,归根结底是我们的出发点不同。
AWS的RDS一开始就是架设在它的虚拟机产品EC2之上的,使用的存储是云盘EBS。EC2和EBS之间通过网络通讯,因此AWS的团队认为“网络成为数据库的瓶颈”,在Aurora的论文中,他们开篇...
PolarDB, 数据库阅读全文
2020-04-28 06:36
⁄ 工业·编程
⁄ 共 1796字
无锁技术目前使用的非常多,基本上新的内存分配库的核心都是使用无锁技术实现的,设计思路非常简单,就是减少并发冲突, 提升效率。
具体来说,一个是使用使用thread_local, 那么每个线程有自己独立的操作对象,那么这种存取方式就是非常高效的,完全没有锁, 代码实现非常简单,定义一下thread local就可以用了。
其次,就是per CPU的方式,就是说数据对象按CPU分组,那么这种方式的锁冲突也是非常小(例如执行中线程被切换情...
多线程编程阅读全文
2020-04-27 15:35
⁄ 工业·编程
⁄ 共 3868字
下图是盗用自《Linux多线程服务端编程,使用muduo C++网络库》一书6.6.2章节(以及下面的时序图也是盗用该书的图)。该图列举出大部分常用的网络编程模型,当然了,这里并没有列出Boost.Asio的proactor模式。
其中表中的“互通”是指多个客户端(连接)间是否能方便地交换数据,如chat聊天程序;UNP是指经典的《Unix网络编程卷一:套接字联网API》一书章节。而我们的evpp库实际上是用到了“方案9”,方案9的时序图如下:
可以看出...
evpp, 网络编程阅读全文
2020-04-26 15:28
⁄ 工业·编程
⁄ 共 9988字
evpp是奇虎360内部使用的开源多线程网络库,集tcp/udp/http多种协议的服务器和客户端支持。它可以不依赖boost库,使用现代c++14语言(evpp/invoke_timer.cc的lambda表达式使用到了c++14的特性)进行编码。本项目高度参考了muduo网络库,而底层使用现成的libevent库作为事件驱动库,典型的一个reactor网络编程模式的例子,本文就是通过分析evpp源码来达到学习c++网络编程的效果。
muduo代...
evpp, 网络编程阅读全文
2020-04-25 15:16
⁄ 工业·编程
⁄ 共 650字
查阅了发现抓取usb包的工具,主要有以下三个:Bus Hound,USBlyzer 和-USBTrace,我使用的是Bus hound和USBlyzer。关于这两个工具的使用我就不在这班门弄斧了,我今天想说的是wireshark这个工具。
无意中发现wireshark也可以抓取usb数据包,而且列出来的信息也比较直观。 可能有些人的wireshark无法抓取usb包,那是因为你在安装的过程中都是一路默认下去的。所以如果想用wireshark抓取usb数据的话,可以考虑重新安装。 ...
USB编程阅读全文
2020-04-24 09:59
⁄ 工业·编程
⁄ 共 3342字
此处我们将通过实际的举例分析,duilib创建的工程,在整个资源解析、控件创建、控件加载与绘制,控件数据处理等管理的整个过程进行整合:
为了便于分析,我们仍然从项目中附带的工程“TestApp1”进行更深入的学习,以下执行流程为具体的大致步骤和操作内容;
从入口点WinMain:
1. CPaintManagerUI整个绘制UI的管理器,调用静态成员函数设置当前应用程序实例句柄以及资源路径(主要为各种xml和图片资源);
2. 初始化COM组件;
...
Duilib, 源码阅读全文