-
4、引用的本质
目录 引用 引用与指针 引用的本质 寄存器 汇编指令引用在C语言中,使用指针(Pointer)可以间接获取、修改某个变量的值 在C++中,使用引用(Reference)可以起到跟指针类似的功能注意点 1、引用相当于是变量的别名(基本数据类型、枚举、结构体、类、指针、数组等,都可以有引用) 对引用做计算,就是对引用所指向的变量做计算2、在定义的时候就必须初始化,一旦指向了某个变量,就不可以再改变,“从一而终”3、可以利用引用初始化另一个引用,相当于某个...…
-
3、内联函数、const
目录 内联函数 const内联函数使用inline修饰函数的声明或者实现,可以使其变成内联函数 建议声明和实现都增加inline修饰特点 编译器会将函数调用直接展开为函数体代码 可以减少函数调用的开销 会增大代码体积注意 尽量不要内联超过10行代码的函数 有些函数即使声明为inline,也不一定会被编译器内联,比如递归函数内联函数与宏 内联函数和宏,都可以减少函数调用的开销 对比宏,内联函数多了语法检测和函数特性 思考以下代码的区别#define sum(x)...…
-
2、cin、cout、函数重载、extern C、默认参数
目录 C++中常使用cin、cout进行控制台的输入、输出 函数重载 extern “c” 默认参数C++中常使用cin、cout进行控制台的输入、输出参考文章:https://blog.csdn.net/zhanghaotian2011/article/details/8868577cin用的右移运算符» cout用的是左移运算符« endl是换行的意思cout语句的一般格式为:cout«表达式1«表达式2«……«表达式n; cin语句的一般格式为:cin»变量1...…
-
1、简介
没有C语言基础的同学,建议先快速学习一下C语言】 C语言快速入门目录 C++的应用领域C++的应用领域一、应用领域游戏(Cocos2d-X)、图像、多媒体、网络、嵌入式数据库(Oracle、MySQL)、浏览器(Chrome)、搜索引擎(Google)操作系统、驱动程序、编译器(GCC、LLVM)、编程语言(Swift)HPC(High Performance Computing,高性能计算)iOS开发(Runtime、AsyncDisplayKit)Android开发(NDK、fre...…
-
3、共用体
参考文章:C语言共用体(C语言union用法)详解目录 共用体 共用体应用共用体通过前面的讲解,我们知道结构体(Struct)是一种构造类型或复杂类型,它可以包含多个类型不同的成员。在C语言中,还有另外一种和结构体非常类似的语法,叫做共用体(Union),它的定义格式为union 共用体名{ 成员列表};结构体和共用体的区别在于:结构体的各个成员会占用不同的内存,互相之间没有影响;而共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员。结构体占用的内存大于等于所有成...…
-
2、位域
参考文章:C语言位域(位段)详解目录 位域 位域的存储 无名位域位域有些数据在存储时并不需要占用一个完整的字节,只需要占用一个或几个二进制位即可。例如开关只有通电和断电两种状态,用 0 和 1 表示足以,也就是用一个二进位。正是基于这种考虑,C语言又提供了一种叫做位域的数据结构。 在结构体定义时,我们可以指定某个成员变量所占用的二进制位数(Bit),这就是位域。定义结构体代码如下:struct Test{ unsigned m; unsigned n:4; u...…
-
1、结构体
参考文章:结构体大小与内存对齐问题 参考文章:C内存对齐原则 目录 结构体介绍 结构体大小及内存对齐结构体介绍一、结构体的声明及类型定义声明struct lcpoint{ float x; float y;};类型定义//定义了一个新的类型LCDate,与int short等地位是相等的,是一个新的类型。typedef struct{ int year; int month; int day;}LCDate;二、结构体的使用//...…
-
终端常用加解密指令
参考文章:OpenSSL新手自学:如何生成RSA私钥并用于数字签名目录 hash值相关 签名相关hash值相关一、查看字符串base64值echo -n 字符串 | base64二、MD5相关1、查看字符串MD5echo -n 字符串 | md52、查看字符串MD5md5 -s 字符串3、查看文件MD5md5 文件名三、SHA相关1、查看字符串SHA1echo -n 字符串 | openssl dgst -sha12、查看文件SHA1openssl dgst -sha1 文件名3、...…
-
网络安全
目录 什么是网络安全? 拟人模型 可访问与可用性 身份认证 信息完整性 机密性 什么是网络安全?网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。可访问与可用性(access and availability): 网络服务必须对被授权用户可访问与可用身份认证(authentication): 发送方与接收方希望确认彼此的真实身份信息完整性(message integrit...…
-
字符串加密
参考文章:https://github.com/CoderMJLee/MJCodeObfuscation目录 为什么要加密 如何加密 代码实现 为什么要加密创建一个stringTest的测试工程,在viewDidLoad方法中添加如下代码:NSString * key = @"helloWorld!";编译运行程序,并将编译完成的可执行文件找到,在MachOView软件中打开,如图可清晰的看到程序中所书写的字符串,这就是问什么要进行字符串加密的原因。尤其是程序中存放的重要的字符串...…
-
各种文件说明
目录 CSR 证书 p12CSRCSR( Certificate Signing Request 证书签名请求)文件是一个用于请求数字证书的文件,通常在生成公钥和私钥后创建。它包含了一些重要的信息,用于向证书颁发机构(CA)请求签署证书。 以下是关于 CSR 文件的主要内容和结构:一、主要内容 1、公钥:CSR 文件中包含了生成时所创建的公钥,CA 会用这个公钥来生成证书。 2、主体信息:CSR 中包含关于证书持有者的信息,例如: 公共名称(Common Name, CN...…
-
公钥、私钥
目录 公私钥 公私钥终端生成 证书 证书终端生成 P12导出公私钥 公私钥私钥modulus: 00:df:0b:f6:22:42:fe:81:a2:f2:fd:36:c5:fc:0d: 7b:1d:35:4d:79:6f:4a:2d:40:7f:0f:39:ec:e5:3a: ee:66:24:14:c9:21:8a:ee:24:12:e5:f3:f9:ba:14: 71:54:f4:7e:9c:94:15:01:0a:8e:9d:b3:b5:fd:7b...…
-
非对称秘钥加密
参考文章:https://github.com/ideawu/Objective-C-RSA/blob/master/RSA.m 参考文章:RSA Padding目录 简介 原理 安全性 代码实现 简介目前主流的加密算法分为两种:对称秘钥加密和非对称秘钥加密。对称秘钥加密主要包括:DES 3DES AES非对称秘钥加密又叫公开秘钥加密主要包括:RSA对称秘钥加密:需要发送方与接收方知 道共享的秘密密钥,最初如何商定密钥( 尤其“素未谋面”)?该篇主要讲解非对称秘钥加密,对称秘...…
-
对称秘钥加密
参考文章:https://blog.csdn.net/lifeng_2009/article/details/5338687?spm=a2c6h.13066369.0.0.506b2945OZpllp目录 简介 DES 3DES AES 填充模式 代码实现 简介目前主流的加密算法分为两种:对称秘钥加密和非对称秘钥加密。 对称秘钥加密主要包括:DES、 3DES、 AES 非对称秘钥加密又称公开秘钥加密主要包括:RSA该篇主要讲解对称秘钥加密,非对称秘钥加密在下篇讲解 ...…
-
传统与现代加密技术
目录 传统加密技术 现代加密技术 Feistel分组密码结构 传统加密方法传统的加密方式主要采用替代和换位两种方式,来混淆要加密的内容,解密时对照密码本进行恢复。替代密码(substitution cipher): 利用一种东西替代另一种东西 凯撒密码:一个字母替代另一个字母 将一个字母利用字母表中该字母后面的第k个字母替代 如k=3,bob. i love you. alice → ere, l oryh brx. dolfh 单码(字母)替代密码:26个...…
-
SHA
参考文章:https://baike.baidu.com/item/SHA家族/9849595?fromtitle=SHA&fromid=9533316&fr=aladdin 参考文章:https://www.jianshu.com/p/7500ee76e8ae目录 简介 什么是SHA 应用场景 OC代码实现 简介HASH算法是密码学的基础,比较常用的有MD5和SHA,最重要的两条性质,就是不可逆和无冲突。上篇介绍了MD5,本篇介绍SHA。 MD5:http...…
-
MD5
参考文章:https://www.jianshu.com/p/ec7b848f83a7 参考文章:https://blog.csdn.net/siwen1990/article/details/79297744目录 简介 什么是MD5 问题及解决办法 应用场景 OC代码实现 简介Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间.简单...…
-
百分号编码
目录 什么是百分号编码 为什么要编码? encodeURI和encodeURIComponent什么是百分号编码URL编码(百分号编码)的原理主要是将URL中不安全或特殊的字符转换为可安全传输的格式。以下是编码过程的主要原理和步骤:安全字符和不安全字符: 安全字符:字母(A-Z, a-z)、数字(0-9)、一些特定符号(如-、_、.、~)可以直接在URL中使用。 不安全字符:空格、#、&、?等在URL中具有特殊意义,可能导致歧义或错误,因此需要进行编码。百分号编码: ...…
-
Base64
参考文章:https://blog.csdn.net/qq_20545367/article/details/79538530目录 什么是Base64 应用场景 OC代码实现 什么是Base64百度百科中对Base64有一个很好的解释:“Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法”。什么是“可打印字符”呢?在ASCII码中规定,0~31、127这33个字符属于控制字符,32~126这95个字符属...…
-
ASCII码与Unicode
参考文章:百度百科ASCII 参考文章:Unicode 参考文章:Unicode和UTF-8的区别目录 ASCII码 Unicode 两者区别 ASCII码一、产生原因 在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的...…