自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

康小曹(简书)

简书-康小曹(https://www.jianshu.com/u/7f1ffb14b781)

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

原创 在Nginx中配置SSL证书

配置证书之前需要以下前置工作:部署Nginx:centOS7中使用Nginx部署静态网页申请 SSL 证书:按照阿里云 SSL 模块的文档正常申请证书;下载证书:下载证书最终得到一个 .key 文件和 一个 .pem 文件:key+pem这两个文件的具体意义是啥?证书好说,key 呢?接下来正式开始在 Nginx 上配置 SSL 证书:1. 查看配置文...

2024-11-28 09:55:30 19452 1

原创 bitmap位图详解

位图算法40亿个数中是否存在一个新给定的数绘图中的位图概念用特定大小的内存空间来表示单个像素的色值,以逐行扫描的方式来来表示整张图片中所有的像素的色值;来历从纯数学的角度,任何一个面都由无数个点组成。但从生理角度而言,人类的肉眼无法区分很小的点。所以在实际应用中,我们没有必要用无数个点来表示一张图片,甚至都没有必要使用足够多的点,只需要让点的个数和大小在人眼能区分的极限之上一点点就好了...

2024-11-28 09:53:33 2868 1

原创 OpenSSL常用命令总结

本文只总结常用命令,以备快速查阅和使用,详细的命令使用及其理解可以参见文章:密码学基础(四):openssl命令详解加密解密完整操作:// 生成私钥caoxkdeMacBook-Pro:opensslTest caoxk$ openssl genrsa -out private.pem 1024Generating RSA private key, 1024 bit lon...

2024-11-28 09:53:17 538 1

原创 密码学基础(五):常见名词解释和密码学标准

摘要算法略对称加密略非对称加密略数字签名使用摘要算法对原文进行签名后使用rsa的私钥对摘要进行加密。不过rsa在实际使用中有两种手段,一种是直接加密,这样对对长度有要求,不能超过rsa所选定的质因数的长度,或者进行分段加密。因为rsa加密很慢,第一种方法在加密较长文件时会很蛋疼,所以一般使用第二种加密方法。使用对称加密加密原文,然后使用rsa加密对称加密中使用的秘...

2024-11-28 09:53:01 2024 1

原创 密码学基础(四):OpenSSL命令详解

openssl介绍密码学标准和我们平常所见的互联网协议一样,是一种大家都遵守的约定和标准,比如PKCS#1中规定了 RSA 秘钥时怎么生成的,公私钥的格式等内容,x509标准规定了证书的格式等。OpenSSL 本质就是一个工具集,按照主流的密码学标准实现了常用的加密算法,证书的生成、签名、验签等功能。因为网络上的资料比较杂,有的是一些比较老的版本,有的又不完整,所以自己稍加总...

2024-11-28 09:52:46 3940 1

原创 密码学基础(三):非对称加密(RSA算法原理)

什么是RSA加密加密和解密使用的是两个不同的秘钥,这种算法叫做非对称加密。非对称加密又称为公钥加密,RSA只是公钥加密的一种。数字签名 && 数字证书现实生活中有签名,互联网中也存在签名。签名的作用有两个,一个是身份验证,一个是数据完整性验证。数字签名通过摘要算法来确保接收到的数据没有被篡改,再通过签名者的私钥加密,只能使用对应的公钥解密,以此来保证身份的一致...

2024-11-28 09:52:32 1443 1

原创 密码学基础(二):对称加密

什么是对称加密加密和解密使用相同的秘钥称为对称加密。主流的对称加密算法DES:已经淘汰3DES:相对于DES有所加强,但是仍然存在较大风险AES:全新的对称加密算法。对称加密的特点特点决定使用场景,对称加密拥有如下特点:快速速度快,可用于频率很高的加密场景。可逆使用同一个秘钥进行加密和解密。分组加密可选按照128、192、256位为一组的加密方式,加密后的...

2024-11-28 09:52:12 942 1

原创 密码学基础(一):摘要算法

什么是摘要算法摘要算法是通过一系列的计算方法和规则,将输入的任意长度的数据转化成固定长度的返回值,这个值被称为hash值(哈希值),而这种算法被称为摘要算法、哈希算法、散列算法。主流的摘要算法MD4、MD5:MD5生成128位固定长度的hash值,已经被破解SHA-1:生成164位固定长度的hash值,已经被破解SHA-2:生成224、256、384、512位的hash值...

2024-11-28 09:51:56 2180 1

原创 iOS类加载流程(一):类加载流程的触发

首先,大家应该都知道 _objc_init 函数是 OC 中类加载比较关键的一个函数,这个函数的调用栈如下:objc_init那么,objc_init 这个函数是如何被调用的呢?又和 OC 中的类加载有什么关系?类又是如何被加载并以什么形式存在于运行时呢?OC 中的成员变量、方法、协议、分类,这些都是如何实现的?1. objc_init 的调用流程从调用栈可以看到,_objc_i...

2024-11-22 08:34:33 759

原创 openGL ES教程(四):纹理

1. 前言理解纹理之前,需要理解两个概念:Fragment;Fragment 的片段插值;官方描述如下:Fragment片段插值总结:一个 Fragment 对应一个像素,只不过 Fragment 是一个数据模型,其中的数据提供给 Fragment Shader 最终渲染出这个 Pixel 的 RGBA;片段插值对每个属性都其作用,不仅仅是颜色。这个功能...

2024-11-22 08:34:22 759

原创 openGL ES 教程(三):画一个三角形

1. iOS 中初始化上下文iOS 中不需要开发者调用 openGL ES 相关 Api 来设置上下文,貌似也没有找到类似 glfw 的三方框架来设置 window,感觉也没必要,所以 window 和上下文的概念就不再赘述了。iOS 中直接使用 GLKViewController 中的 GLKView 就可以初始化上下文:- (void)setupConfig { //新建Open......

2024-11-22 08:34:11 941

原创 openGL ES 教程(二):渲染管线

首先,GPU 的渲染流程就是一个程序,该程序是由多个着色器组成。着色器本身也是一个程序,所以需要先进行编写、编译,然后再链接到渲染程序中,多个着色器链接之后生成最终的渲染程序。GPU 本身是高并发设计,在渲染管线进行时,各个小的着色器可以并发执行。比如在顶点输入阶段,输入了 10 个顶点,可能就有 10 个着色器程序同时执行并输出结果。至于在同一个渲染管线内,不同阶段之间是否能够并发,这个取...

2024-11-22 08:34:03 738

原创 openGL ES 教程(一):基本概念和发展历史

1. khronos 简介image.pngkhronos 是由 170 家企业组成的开源、非盈利的成员驱动型组织,主要负责开发、发布和维护免税版权标准,其范围涉及到 3D图像学、虚拟现实、增强现实、并行计算、视觉加速和机器学习。该组织制定的标准及其相关的适应性测试提高了软件和中间软件的创作,而且加速了动态多媒体的在跨平台设备上的回放。khronos 是 OpenGL ES 标准的...

2024-11-22 08:33:54 1070

原创 红黑树、B树、B+树各自适用的场景

1. 磁盘基础知识分页:现代操作系统都使用虚拟内存来印射到物理内存,内存大小有限且价格昂贵,所以数据的持久化是在磁盘上。虚拟内存、物理内存、磁盘都使用页作为内存读取的最小单位。一般一页为4KB(8个扇区,每个扇区125B,8*125B=4KB)。局部性原理:当一个数据被用到时,其附近的数据也通常会马上被使用。程序运行期间所需要的数据通常比较集中。磁盘预读原理:磁盘读取...

2024-11-22 08:33:35 1195 1

原创 iOS的三重缓冲和微型口吃(micro stuttering)

Instrument 中的 Display 模块:instrument-displayiOS 中采用双重缓冲和三重缓冲一起使用,从 display 中就可以看出来。即:双缓冲不够用了就采用三缓冲。首先看看双重缓冲:双缓冲如上,此时双缓冲很够用,每次 Vsync 来到之前,上一帧的 frame buffer(apple叫做surface + ID),所以帧率很高,基本在...

2024-11-22 08:33:21 599

原创 HTTP缓存机制及其在iOS中的应用

一、 什么是缓存Web 缓存是可以保存文档副本的HTTP设备。HTTP缓存一般为两种,本地缓存和代理缓存。本地缓存就是客户端设备中的缓存,代理缓存就是缓存代理服务器,常见的就是 CDN。二、缓存机制1. 缓存机制缓存的机制是针对客户端-缓存设备-源站的交互而言的,缓存的处理机制如下:缓存机制如上图所示,一般而言,缓存是否新鲜采用 Cache-Control/Expires...

2024-11-22 08:33:04 1114 1

原创 iOS:SideTable

本文源码来自于 objc4-756.2 版本;本文研究 sideTable 在 objc4 源码中的使用及其作用,从而解析 iOS 中引用计数器和弱引用的实现原理;1. retain 操作我们都知道,新版本的 objc 中引入了 Tagged Pointer,且 isa 采用 union 的方式进行构造,其中 isa 的结构体中有一个 extra_rc 和 has_sidetable_r...

2024-11-22 08:32:48 982 1

原创 JSCore浅析及其在iOS上的使用

一、浏览器的组成浏览器的组成上文中,中间部分是 WebKit,其他部分由浏览器实现,而 WebKit 中主要分为四大部分:1. WebKit Embedding Api提供和浏览器进行交互的一些接口,比如前进后腿、新开窗口、新开页面、关闭页面等;2. WebKit Ports(Platform Api)跨平台 Api,感觉应该是 WebKit 暴露一些没有实现接口,供不同的平...

2024-11-22 08:32:32 2092

原创 AFN中的鉴权

1. AFN 概览作为 iOS 上最知名且最广泛使用的网络库,AFN 到底做了什么?主要流程:发起请求;请求序列化;安全策略应用;响应序列化;返回请求;使用:继承 AFHTTPSessionManager,创建自定义的请求对象;设置安全策略;发送 post、get 请求;回调中处理结果;类结构和请求流程本文主要研究 AFN 的鉴权流程;2. 鉴权...

2024-11-22 08:32:16 10062

原创 iOS中的HTTPS认证

一、HTTPS认证1. 会话认证机制iOS 中会话认证机制共有四种,大体分为两种类型:单向认证双向认证;NTLM 和 Kerberos;枚举类如下:会话认证机制单向认证指客户端验证服务端的身份,服务端不验证客户端身份;双向认证指客户端验证服务端身份,服务端也认证客户端身份,未通过认证的客户端在握手阶段直接断开连接,禁止访问服务器;NTLM 和 Kerberos...

2024-11-22 08:31:56 2846

原创 iOS类加载流程(二):类的静态初始化

在 iOS类加载流程(一):类加载流程的触发中已经知道两个关键函数 map_images() 和 load_images() 的触发逻辑了。但是现在直接看 map_images() 会一脸懵逼。这里直接看老司机们都比较熟悉的 realizeClassWithoutSwift 函数。我们只需要知道这个函数是 objc 进行类的懒加载和非懒加载必须调用的方法,也是类初始化中的关键函数。理解了这...

2024-11-22 08:06:36 1074

空空如也

空空如也

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

TA关注的人

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