自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

liitdar的博客

逆水行舟,不进则退

  • 博客(18)
  • 收藏
  • 关注

原创 SQL中JOIN操作后接ON和WHERE关键字的区别

当使用连接(JOIN)操作,关联两张或多张表返回记录时,数据库都会生成一张临时表,最后将这张临时表返回给用户。这里以LEFT JOIN为例。ON条件是在生成临时表时使用的条件,它不管ON中的条件是否为真,都会返回左边表中的全部记录;WHERE条件是在临时表已经生成后,对临时表进行的过滤条件。因为此时已经没有LEFT JOIN的含义(必须返回左侧表的记录)了,所以WHERE条件不为真的记录就会被过滤掉。mysql>

2018-06-26 17:07:55 34056 6

原创 SQL中连接(JOIN)子句介绍

SQL中的JOIN子句用于把来自两个或多个表的行结合起来。在实际的数据库应用中,经常需要从多个数据表中读取数据,这时就可以使用SQL语句中的连接(JOIN)子句,在两个或多个数据表中查询数据。INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录;LEFT JOIN(左连接):获取左表中的所有记录,即使在右表没有对应匹配的记录;RIGHT JOIN(右连接):与LEFT JOIN相反,用于获取右表中的所有记录,即使左表没有对应匹配的记录。

2018-06-26 16:28:21 103380 11

原创 MD5算法介绍

MD5,即消息摘要算法第五版,是一种被广泛使用的密码散列函数。散列算法的基本原理是:进行数据(如一段文字)运算,将原始数据变为另一段固定长度的值。MD5可以产生出一个128位(16字节)的散列值(hash value),用于确保传输信息的完整性。MD5由美国密码学家“Ronald Linn Rivest”设计,于1992年公开,用以取代MD4算法。

2018-06-21 11:48:44 2726

原创 OpenSSL常见用法

本文主要介绍OpenSSL的常见用法。说明:本文介绍的OpenSSL常见用法是面向Linux操作系统的。引用OpenSSL官网上的描述,内容如下:使用OpenSSL的genrsa命令生成服务器的密钥对(包含公钥和私钥),命令如下:上面的命令生成一个2048 bit的密钥对,并输出到文件server-key.pem里。server-key.pem是pem格式的,其内容如下:虽然server-key.pem文件的头尾都标注着“RSA PRIVATE KEY”,但实际上这个文件中既包括公钥也包括私钥。

2018-06-21 08:46:35 2949 1

原创 数字签名(digital signature)技术介绍

数字签名(又称公钥数字签名、电子签章),是一种类似写在纸上的、普通的物理签名,只不过数字签名通过公钥加密领域的技术实现。数字签名属于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算:一个运算用于签名,另一个运算用于验证签名(验签)。数字签名,就是只有信息的发送者才能产生的、别人无法伪造的一段数字串,这段数字串是对信息发送者所发送信息真实性的一个有效证明。数字签名是非对称密钥加密技术与数字摘要技术的应用。

2018-06-19 20:49:16 22139 1

原创 对称加密算法和非对称加密算法介绍

对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发送方利用加密密钥、通过指定的加密算法将明文(原始数据)加密为密文,然后发送出去。数据接收方在收到密文后,需要使用加密时使用的密钥、以及加密算法的逆算法对该密文进行解密,才能对应的明文。在对称加密算法中,消息发送方和接收方都使用同一个密钥对数据进行加密和解密,所以,使用对称加密算法时,解密方需要事先知道消息的加密密钥。非对称加密算法需要两个密钥(密钥对),即公钥(public key)和私钥(private key)。

2018-06-19 19:51:15 2276

原创 SSL/TLS介绍

SSL及其继任者TLS是为网络通信提供安全及数据完整性的一种安全协议。SSL由Netscape研发,用以保障在Internet上安全地进行数据传输,利用数据加密“Encryption”技术,可确保数据在网络传输过程中不会被截取或窃听。SSL的当前版本为3.0,它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输场景中。TLS用于在两个通信应用程序之间提供保密性和数据完整性。SSL与TLS都是在传输层上对网络连接进行加密的。

2018-06-19 19:18:59 2087

原创 Linux操作系统中GDB工具介绍

本文主要介绍Linux操作系统中GDB(The GNU Project Debugger)工具,及其常见用法。引用GDB官网中的介绍,内容如下:本章通过调试示例程序的方式,介绍GDB工具的常见用法。示例程序的源代码(gdb_test1.cpp)内容如下:编译上述代码,命令如下:注意:在编译过程中添加“-g”选项,将源代码信息添加到可执行文件中,便于后面进行gdb调试。1. 启动gdb,命令及过程信息如下:说明:2. 加载被调试的可执行文件,命令及过程信息如下:说明:3. 设置断点(b

2018-06-15 08:53:52 1614

原创 curl常见用法

本文主要介绍curl的常见用法。说明:本文介绍的curl常见用法是面向Linux操作系统的。引用Manual中关于curl的介绍,内容如下:引用GitHub中关于curl的介绍,内容如下:curl is used in command lines or scripts to transfer data. curl is also used in cars, television sets, routers, printers, audio equipment, mobile phones, tablets,

2018-06-13 20:29:18 27305 1

原创 统一资源定位符(URL)介绍

引用Wikipedia中关于URL的相关描述,内容如下:httpftp), email(mailtoJDBCURL是针对可以从互联网上得到的资源的位置及访问方法的一种简洁的表示,是互联网上标准的资源地址。互联网上的每个文件都有唯一的URL,这个唯一的URL包含的信息指出了该文件的位置以及浏览器应该怎么处理它。

2018-06-13 19:25:18 1182 1

原创 CMake用法示例

引用CMake官网的描述,内容如下:buildtestandpackagesoftware。

2018-06-12 19:35:10 4141

原创 存储过程(Stored Procedure)介绍

存储过程是大型数据库系统中,一组为了完成特定功能的SQL语句集,这些SQL语句集存储在数据库中,经过第一次编译后,后续调用不需要再次编译,用户通过存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库的一个重要对象。

2018-06-12 09:04:16 10630 1

原创 C++编程语言中赋值运算符重载函数(operator=)介绍

首先介绍为什么要对赋值运算符“=”进行重载。某些情况下,当我们编写一个类的时候,并不需要为该类重载“=”运算符,因为编译系统为每个类提供了默认的赋值运算符“=”,使用这个默认的赋值运算符操作类对象时,该运算符会把这个类的所有数据成员都进行一次赋值操作。int b;int c;对这个类的对象进行赋值时,使用默认的赋值运算符是没有问题的。int b;int c;

2018-06-11 18:27:00 111925 35

原创 C++编程语言中重载运算符(operator)介绍

operator是C++的一个关键字,它和运算符(如“=”)一起使用,表示一个运算符重载函数,在理解时可将operator和待重载的运算符整体(如“operator=”)视为一个函数名。使用operator重载运算符,是C++扩展运算符功能的方法。使重载后的运算符的使用方法与重载前一致;扩展运算符的功能只能通过函数的方式实现。(实际上,C++中各种“功能”都是通过函数实现的)

2018-06-11 16:40:12 208453 22

原创 C++编程语言中引用(reference)介绍

引用(reference),就是某一变量(目标)的一个别名,对引用的操作等同于对该变量(目标)的直接操作。引用是C++语言对C语言的重要扩充。引用名是变量的一个别名,即它是某个已经存在变量的另一个名字,一旦把引用初始化为某个变量,就可以使用该引用名称来指向那个变量。如果把变量名称作为变量附属在内存位置中的一个标签,那么就可以把对应的引用名称当成是变量附属在内存位置中的第二个标签。因此,可以通过原始变量名称(即原始标签)或引用名称(第二个标签)来访问变量的内容。

2018-06-08 13:55:23 4617

原创 C++编程语言中const关键字介绍

本文主要介绍C++编程语言中const关键字的相关知识。const关键字的作用是把一个对象定义为一个常量。在C++中,有如下两种简单的定义常量的方式:使用const关键字声明指定类型的变量为常量,一般用法如下:上述语句将type类型的变量variable声明为常量,对应的常量值为value。

2018-06-07 09:48:56 276

原创 C/C++编程语言中枚举类型(enum)介绍

枚举类型(enumerations)是C/C++编程语言的一种派生数据类型,它是由用户定义的若干枚举常量组成的集合。如果一个变量只有几种可能的值,那么可以将其定义为枚举类型。所谓“枚举”,是指将变量的值一一列举出来,变量只能在列举出来的枚举值范围内进行取值。

2018-06-06 18:54:58 4271 1

原创 C++编程语言中模板(template)介绍

泛型编程是一种代码编写方式,通过使用泛型编程,可以编写出独立于任何特定类型的代码。模板是泛型编程的基础,是创建泛型函数或类的蓝图(公式)。C++的STL(Standard Template Library)容器及其迭代器和算法,都是泛型编程的例子,它们都使用了模板的概念。每个容器都有一个单一的定义,比如vector,我们可以定义许多包含不同类型元素的vector,比如:“vector ”或“vector ”。C++的模板包括函数模板和类模板。

2018-06-05 20:51:03 8077

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除