【2.学习__签名证书和加密证书】

2023-10-30

实习期学习一些签名和加密的知识:

------------------------暂时先这样,有时间了再整理。学习的方法: 先学习证书文件内容、结构,再针对问题进行学习

 

证书相关的知识:

1. 证书的结构大致是什么样的?

证书的机构分为三部分:

tbsCertificate: 包含 主题 和 发行者的名字,与主题联系起来的公开密钥,有效期和其他相关信息

 

signatureAlgorithm: 包含 CA签发证书使用的密码学算法标识符。

 

signatureValue: 包含对 tbsCertificate 的数字签名。TbsCertificate作为ASN.1编码的输入参数,签名结果值包括在证书的签名字段中。CA能证明tbsCertificate字段中信息的有效性,特别是,CA能够实现 公开密钥 和 证书的主题 绑定。

 

证书的主要字段包括:

1.版本号-------------证书的版本号 V1 V2 V3 (版本3的值为2)

2.标识符-------------证书的唯一标识符 (CA分配的一个整数)

3.签名算法----------证书的签名算法标识符

4.颁发者-------------颁发者可识别名

5.有效期-------------证书的有效期时间段

6.主题----------------证书拥有者的可识别名 Subject

7.主题公钥----------证书拥有者的公钥

8.颁发者标识符-----颁发者的唯一标识符 V2 V3

9.主题标识符--------主体的唯一标识符 V2 V3

10.扩展---------------证书的扩展项(可选的标准和可用扩展) 只出现在 版本3中

 

 

X.509 证书详细描述:

Certificate :: = SEQUENCE {

tbsCertificate TBSCertificate, -- 证书主体

signatureAlgorithm AlgorithmIdentifier, -- 证书签名算法标识

signatureValue BIT STRING -- 证书签名值,是使用signatureAlgorithm部分指定的签名算法对tbsCertificate证书主题部分签名后的值

}

————————————————————

TBSCertificate :: = SEQUENCE {

version [0] EXPLICIT Version DEFAULT v1, -- 证书版本号

serialNumber CertificateSerialNumber, --- 证书序列号,对同一CA所颁发的证书,序列号唯一标识证书

signature AlgorithmIdentifier, -------- 证书签名算法标识

issuer Name, -------- 证书发行者名称

validity Validity, -------- 证书有效期

subject Name, -------- 证书主体名称

subjectPublicKeyInfo SubjectPublicKeyInfo, -------- 证书公钥

issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,

----------证书发行者ID(可选),只在证书版本2,3中才有

subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,

----------证书主体ID(可选),只在证书版本2,3中才有

extensions [3] EXPLICIT Extensions OPTIONAL

--------- 证书扩展段(可选),只在证书版本3中才有

}

————————————————————

AlgorithmIdentifier ::= SEQUENCE {

algorithm ONJECT IDENTIFIER,

parameters ANY DEFINED BY algorithm OPTIONAL

}

——————————————-——————

BIT STRING : 证书签名值

 

 

1》版本号:默认为V1,有唯一标识(颁发者、使用者)的版本号为V2,有扩展的版本号为V3

1. ASN.1定义: Version ::= INTEGER { v1(0), v2(1) , v3(2) }

 

2》序列号:正整数,在一个CA中不能出现重复值、最大为20个字节

1. ASN.1 的定义:CertificateSerialNumber ::= INTEGER

 

3》签名算法:带参数的、用于给证书签名的算法,由于此信息在证书尾部的域Signature中还会出现,这里很少包含信息。q9

在实际的证书中看到了 签名算法 和 签名哈希算法==》怎么理解呢 q2

用来签名算法用来生成密钥对? 和 用来 签名哈希算法用来签名?

 

4》颁发者:(X.500中创建、签名证书的签证机构CA的名字)

1. ASN.1定义: Name ::= CHOICE { --only one possiblity for now --rdnSequence RDNSequence }

2. 作用:用来标识证书的颁发机构

3. 要求: 必须包含一个非空的DN(distinguished name)

4. 是由一组属性和属性值组成的

 

5》有效期:

1.ASN.1定义: Valitity ::= SEQUENCE { notBefore Time, notAfter Time }

Time ::= CHOICE { utcTime UTCTime,generalTime GeneralizedTime }

2.作用:由 开始时间 和 截止时间组成;在 开始时间 和 截止时间 范围内,CA负责管理证书状态、

3.UTCTime : YYMMDDHHMMSSZ 两个数字表示年份,表示1950年1月1日到2050年1月1日

4.GeneralizedTime:YYYYMMDDHHMMSSZ 2050年1月1日以后的时间

5.必须使用格林威治时间表示 Z代表Zulu

 

6》证书主题:(Subject代表证书拥有者)

1. 是公钥所有者的标识

2. 一个CA中每个实体的主题应该唯一 ,CA可以给同一个实体签发不同主题的多张证书(用来签名/加密)

3.字段不能为空的情况 : CA证书、CRL发布者证书

如果该字段为空,主题信息必须在subjectAltName扩展中,且此扩展为‘关键’

4.建议使用 PrintableString 和 UTF8String 编码方式

5. Email 信息建议放到subjectAltName 扩展中

 

7》公钥信息(Subject's public-key information): 包含 公钥 和 算法标识带有相关参数

 

8》唯一标识:由于X.500的名字被许多不同实体引用,因此用可选位串唯一标志区分。

1. 用于 主题 或 颁发者 名称重用情况下,做区分。

2. 5280不建议重用这些信息,所以不要使用这个内容。

 

10》证书扩展:

1. 为 证书用户 和 公钥 提供绑定更多属性的途径

2. 表现形式:

一个OID 和 一个 ASN1的结构

一个扩展只能出现一次

3. 关键与非关键:

扩展要么关键,要么不关键,关键扩展如果应用不能处理,证书会被拒绝,非关键扩展可被忽略

4.标准扩展:OID以2.5.29开头

 

11》签名(Signature): 用CA私钥对证书的所有域及这些域的Hash值一起加密。

 

12》DN的比较:(证书有效的域名)

1.比较属性的语义内容,可支持除UTF8String外的其他编码方式(3280只说比较UTF8String编码的二进制结果)

2.组成DN的各属性的顺序一致、个数一致

3.关于空格,按RFC4518 Secation 2.6.1,在非空格字符中间的多个空格会被认为是一个空格

 

 

-------针对问题学习:

1. 证书的结构大致是什么样的?

证书的机构分为三部分:

tbsCertificate: 包含 主题 和 发行者的名字,与主题联系起来的公开密钥,有效期和其他相关信息

 

signatureAlgorithm: 包含 CA签发证书使用的密码学算法标识符。

 

signatureValue: 包含对 tbsCertificate 的数字签名。TbsCertificate作为ASN.1编码的输入参数,签名结果值包括在证书的签名字段中。CA能证明tbsCertificate字段中信息的有效性,特别是,CA能够认证在证书中 公开密钥 和 证书的主题 绑定。

 

 

2.1 证书主题的结构;常用的缩略名cn,o,ou,st等代表什么意思;

一般的数字证书产品的主题通常含有如下字段:

公用名称 (Common Name) 简称:CN 字段,对于 SSL 证书,一般为网站域名或IP地址;而对于代码签名证书则为申请单位名称;而对于客户端证书则为证书申请者的姓名; 

组织名称 (Organization Name) :简称:O 字段,对于 SSL 证书,一般为网站域名;而对于代码签名证书则为申请单位名称;而对于客户端单位证书则为证书申请者所在单位名称; 

组织单位(Organization Unit):简称:OU字段,标识组织部门;

证书申请单位所在地: 

   所在国家 (Country) 简称:C 字段,只能是国家字母缩写,如中国:CN 

   所在省份 (State/Provice) 简称:S 字段 

   所在城市 (Locality) 简称:L 字段 

其他一些字段:

   电子邮件 (Email) 简称:E 字段 

   多个姓名字段 简称:G 字段 

   介绍:Description 字段 

   电话号码:Phone 字段,格式要求 + 国家区号 城市区号 电话号码,如: +86 732 88888888 

   地址:STREET  字段 

   邮政编码:PostalCode 字段 

 

3. 能唯一标识证书的是什么?

发行者名字(颁发者身份)+ 证书序列号 : 因为 不同的CA可以分配相同的证书标识号

 

4.根证书与非根证书的区别?

根证书是一个机构,非根证书有所属。

1. 根证书是未被签名的公钥证书或自签名的证书(百度百科)

2. CA认证中心给自己颁发的证书,是信任链的起始点

 

5. Crl 是什么,作用是什么?

CRL(Certificate Revocation List):证书吊销列表。一个被签署的列表,它指定了一批证书发布者认为无效的证书,除了普通CRL外,还定义了一些CRL类型用于覆盖特殊领域的CRL。q11

 

解释: CRL一定是被CA所签署的,可以使用与签发证书相同的私钥,也可以使用专门的CRL签发私钥。CRL中包含了被吊销证书的序列号,也可能包含吊销原因。

可以不是本CA签署,如此一来,在扩展中 cRLIssuer 需要指定签署者,

如果是本CA签署,必须有CDP,且没有cRLIssuer。

 

CRL 的内容 和数据结构定义:

CRL版本号:版本号

CRL 签名算法:计算CRL的数字签名所用算法标识符

CRL 颁布者:CA的可识别名(DN)

本次更新时间:CRL的更新时间

下次更新时间:约定的下次更新时间,可以提前,不能拖延

注销的证书列表:仅列出被吊销证书的唯一序列号+扩展项

 

扩展项包含:理由代码、证书颁发者、控制指示代码、失效日期

为了保证CRL的真实性和完整性,CRL数据的后面附有颁发CRL 的CA对CRL的数字签名。

 

CRL的数据形成之后,将数据放到LDAP服务器上,供用户查询。为防止用户数据量庞大的情况,采用以下两种方式处理:

1. 使用分段的CRL,把庞大的CRL分成很多可控的片段,并允许一个CA的吊销信息通过多个CRL发布。在证书的扩展项中,有一个子项是CRL的发布点,用户通过查询证书的扩展性,获取指定的参数,来针对性的访问相应的CRL。

 

2. 建立远程的镜像LDAP服务器,多分布在大客户的所在地。CA的LDAP主服务器负责对镜像服务器进行定期数据更新,以便使镜像服务器的数据和主服务器一致。

设置镜像服务器的目的有三个:

服务器的响应时间:就近选择服务器,加载本地用户访问速度

处理大数据量访问: 对大量并发访问进行分流,减轻高峰时间LDAP主服务器的负载

数据备份功能:提供不间断服务

 

3. CRL的更新:如果是实时更新,需要占用大量的网络资源和服务器资源。

此时引入了增量CRL的概念,在CRL的更新操作时,不是对基本的CRL进行更新,而是对新产生的吊销信息进行添加。一般的更新周期为8小时。

 

证书吊销: 证书都具有一个指定的寿命,但CA可通过称为证书吊销的过程来缩短这一寿命。

CA发布一个证书吊销列表(CRL),列出被认为不能再使用的证书的序列号。

CRL指定的寿命通常比证书指定的寿命短很多。

CA也可以在CRL中加入证书吊销的理由。

它还可以加入被认为这种状态改变所适用的起始日期,并不是立即生效。

 

 

6. LDAP 是什么?

LDAP(Lightweight Directory Access Protocol): 轻量级目录访问协议,从X.500目录访问协议的基础上发展过来,目前是v3.0。

作废证书发布列表:用来提供查询服务,通过CRL发布到LDAP上,用户可以通过查询LDAP来判断证书是否已被撤销。

 

1. 目录服务:

目录是一个为查询、浏览和搜索而优化的专业分布式数据库,它呈现树状组织数据。目录数据和关系数据库不同,它有优异的读性能,但写性能差,并且没有事务处理、回滚等复杂功能,不适于存储修改频繁的数据。所以目录天生就是用来查询的,就好像它的名字一样。

 

2. LDAP特点:

LDAP 的机构用树来表示,而不是用表格。正因为这样,就不能用SQL语句了。

LDAP可以很快地得到查询结果,不过在写方面,就慢得多。

LDAP提供了静态数据的快速查询方式。

Client/server 模型,Server 用来存储数据,Client提供操作目录信息树的工具。

LDAP是一种开发Internet标准,LDAP协议是跨平台的Interent协议

 

3. 关键字段:

1. Entry : 条目,也称记录项,是LDAP中最基础的颗粒,类比数据库中的记录。通常对LDAP的添加、删除、更改、检索都是以条目为基本对象的。

2.Attribute:每个条目有很多属性,用Attribute表示。

3. ObjectClass:对象类是属性的集合,LDAP预想了很多人员组织机构中常见的对象,并将其封装成对象类。

4. Scheme:对象类的集合。描述 条目 属性 值 的关系。

5. backend & database:IDAP 的后台进程可以有 slapd接收、相应请求,但实际存储数据、获取数据的操作是由Backends 做的,而数据是存放在database中。

6. TLS & SASL

分布式 LDAP 是以明文的格式通过网络来发送信息的,包括client访问Idap的密码,SSL/TLS的加密协议就是来保证数据传输的保密性和完整性。

7.SASL 简单身份验证安全框架,它能够实现openIdap客户端到服务端的用户验证.

8.LDIF : 是LDAP 数据库信息的一种文本格式,用于数据的导入导出,键值对形式。每行都是 “属性:值“对

 

7 . 在线查询机制---OCSP

1. 定义:在线证书状态协议----(Online Certificate Status Protocol)是 IETF 颁发的用于检查数字证书在某一交易时间是否有效的标准。提供了检验数字证书有效性的途径,比下载和处理证书注销列表(CRL)的传统方式更快、方便、独立性。

 

2. 用法:用户的客户机形成查询指定证书状态的请求,并将请求转发到一个OCSP应答器(服务器),应答器建立与CA证书库的连接,并查询CA证书库而获得证书的状态,应答器返回客户机有关证书有效性信息。

 

3. 一个OCSP请求,由协议版本号、服务请求类型及一个或多个证书标识符等信息组成;

响应信息是由证书标识符、证书状态(注销/有效/未知)、以及验证相应时间等信息所组成。响应信息必须经过数字签名,以保证信息的真实性和完整性。签名密钥属于CA,即用户可以信任这个信息。

 

OCSP 在线查询机制 只能检测证书的注销状态,没有其他功能。例如:不能检查证书的有效期,也不返回完整的证书。

OCSP的查询 要求用户保持在线状态,且访问的对象集中在CA的OCSP中,同样带来高并发,效率下降的问题。

 

 

附加信息:

1. 密钥生成:

1. 终端实体注册

2. 签名密钥对产生

3. 证书申请和密钥

4. 证书分发 : 一旦私钥 和 公钥证书产生即可进入颁发阶段。

5. 密钥备份

 

关于证书的一些操作:

1. 证书检索 远程资料库的证书检索

2. 证书验证 确定证书的有效性

3. 密钥恢复 不能正常解读加密文件时,从CA中恢复

4. 密钥更新 当一个合法的密钥对将要过期时,新的密钥对自动产生并颁发

 

2.密钥备份:备份由CA机构执行,

签名密钥对 由 签名私钥 和 验证公钥 组成。签名私钥不能做备份,一旦丢失,就重新生成新的密钥对,验证公钥需要做存档,以验证旧的签名有效。签名密钥对的生命期较长。

 

加密密钥对 由 加密公钥 和 解密密钥 组成。解密私钥应该进行备份,同时需要存档,以便任何时候解密历史数据, 加密公钥无须备份和存档,丢失之后,只需要重新产生密钥对。

 

3. 密钥恢复:

发生在证书颁发阶段,可以通过密钥恢复中心 或者 CA 完成,可以从远程设备恢复 ,也可以从本地设备恢复。任何综合管理协议都必须包括对这个能力的支持。

 

6. 证书签发;

离线发放,特别是 企业高级证书 ,在LDAP中添加信息后,给申请者产生一个参照号+认证码,放到保密信封中,通过可靠途径传递,企业高级证书申请人输入参照号 + 认证码,可以领取证书,存储到本地。

在线发放,通过Internet使用LDAP,在X.500目录服务器上下载证书。通过申请,直接显示 参照号+授权码,申请人登陆网站,安装Root CA证书,自助下载证书。

 

7. 证书撤销:密钥泄露、从属变更、终止使用、CA本身原因

一个证书的生命周期主要包括三个阶段,证书初始化注册阶段、颁发阶段、取消阶段。证书密钥备份和恢复发生在初始化注册阶段 和 证书颁发阶段。

证书注销列表处理:记录尚未过期但已声明作废的用户证书序列号,供证书使用者在认证对方时查询使用。

证书撤销是在正常过期之前由于密钥泄露或者证书所有者状态改变等情况导致证书颁发机构使证书作废。所以,PKI 必须提供一种 允许用户检查证书的撤销状态的状态机制。

目前的X.509允许下列三种情况:

1. 证书不可撤销

2. 颁发证书的认证机构撤销

3. 颁发证书的认证机构 授予 其他机构撤销的权限,并由其他机构撤销证书

X.509 说明的撤销机制使用了证书撤销列表(CRL),该规范也允许使用其他机制

 

信息发布;

1.私下分发:撤销信息的交换是 非正式 和 不可靠的。撤销通知可以通过电话或者E-mail 来传送,但不能保障撤销信息 可靠传送到每一个相关的个体。

缺点: 私下分发不具有可扩展性,只支持一个较小的用户群

撤销信息的专门分发是内在不可靠的,某些不可达

以 用户为中心的信任模型 与 大多数企业范围内的操作模型 不太相容,后者需要集中式控制

 

2.公开发布:PKI 的信息放到 一个公开且容易访问的地点。对于范围大的用户群,发布的吸引力是很大的、很正式的。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【2.学习__签名证书和加密证书】 的相关文章

  • 数字签名-数字证书-ca认证

    数字签名是什么 xff1f 作者 xff1a 阮一峰 今天 xff0c 我读到一篇好文章 它用图片通俗易懂地解释了 xff0c 34 数字签名 34 xff08 digital signature xff09 和 34 数字证书 34 xf
  • windows下安装openssl的两种方式

    windows下按装openssl 第一种 第二种 因为工作需要第一次接触openssl 中间踩得坑实在是太多了 最后也算放弃了那种安装方式原则了一个比较简单的 第一种 第一种就是网上平常的说的方法 先下载 ActivePerl 5 24
  • iOS 基础:证书介绍

    首先 打开developer apple com 在iOS Dev Center打开Certificates Indentifiers Profiles认识一下基本结构 列表就包含了开发 调试和发布iOS应用程序所需的所有内容 Certif
  • 中标龙芯、deepin龙芯、ubuntu证书存放路径及安装卸载说明

    中标龙芯 deepin龙芯 ubuntu证书存放路径及安装卸载说明 一 Ubuntu deepin龙芯 证书路径 etc ssl certs ca certificates crt 安装步骤 1 生成 crt后缀证书 如test crt 2
  • 【2.学习__签名证书和加密证书】

    实习期学习一些签名和加密的知识 暂时先这样 有时间了再整理 学习的方法 先学习证书文件内容 结构 再针对问题进行学习 证书相关的知识 1 证书的结构大致是什么样的 证书的机构分为三部分 tbsCertificate 包含 主题 和 发行者的
  • Mac Safari 此连接非私人连接

    1 问题 连接公司vpn的时候 Mac弹出此连接非私人连接 点击访问此网站后输入密码将证书手动设为可信后 又弹出了此连接非私人连接 之后进入了无限循环无论怎样都无法访问该网页 2 解决方案 2 1 点击页面上查看此证书 记住证书名字 可以看
  • SSL_connect returned=1 errno=0 state=error: certificate verify failed

    起因 起因是这样的 我昨天使用 gem 安装 irb 的时候出现了下面这个错误 root master gem install irb ERROR Could not find a valid gem irb gt 0 here is wh
  • 被勒索病毒加密的文件如何破解?

    想要硬刚勒索病毒 脱密加密的文件 是很难的 之前 我已经介绍了数字签名 勒索病毒使用了公钥加密另一个常用应用 数字信封 技术 想要恢复勒索病毒加密的文件 可以破解黑客的公钥 或者破解黑客加密文件的临时对称密钥 而这2种算法 黑客都选用了目前
  • [网络安全自学篇] 四十六.微软证书安全问题 (上)Windows验证机制及可执行文件签名问题

    在分享本篇文章之前 先简单聊聊我学习网络安全和系统安全的感受 半年来 作为网络安全的初学者 我写了近50篇安全的文章 从Web渗透到CTF 从二进制分析到恶意代码检测 从CVE漏洞还原到木马病毒及论文 但还是觉得自己非常菜 至今未进入安全圈
  • Fabric配置fabric-sample工程目录,并生成证书

    GitHub上的fabric sample工程 默认只有源码 缺少CA工具和加密工具 它需要从其他地方下载CA工具和加密工具 这里以fabric v1 4 0为例进行说明 步骤如下 1 下载fabric sample v1 4 0源码 官网
  • X.509数字证书内容结构

    更多区块链技术与应用分类 区块链应用 区块链开发 以太坊 Fabric BCOS 密码技术 共识算法 比特币 其他链 通证经济 传统金融场景 去中心化金融 防伪溯源 数据共享 可信存证 X 509证书 数字证书是现代信息安全的核心技术 无论
  • https 获取安全证书和配置nginx

    1 阿里云申请免费的安全证书 一般几个小时就ok 2 服务器nginx创建目录cert 3 将下载下来的压缩包打开 复制里面的文件到服务器nginx配置cert目录下 可以更改名字 4 修改nginx conf配置文件 server lis
  • 开源CA搭建-基于openssl实现数字证书的生成与分发

    目录 一 前言 二 openssl介绍 三 openssl的常用用法 一 单向加密 二 生成随机数 三 生成公钥 私钥 1 生成私钥 2 提取公钥 四 搭建CA 一 创建根CA私钥 二 生成自签名证书 三 创建数据库以及新颁发证书数字 四
  • FiddlerCore HTTPS 证书每次都需要创建的问题

    FiddlerCore HTTPS 证书每次都需要创建的问题 问题描述 我使用FiddlerCore来抓取HTTPS数据 需要安装证书 使用以下代码进行安装 安装证书 public static bool InstallCertificat
  • 计算机含金量最高的证书

    第一种证书 计算机技术与软件专业资格考试证书 计算机技术与软件专业资格考试证书 是由国家人力资源和社会保障部 工业和信息化部领导的国家级考试 该考试分为 5 个专业类别 并分设了高 中 初级专业资格考试 共 28 个资格的考核 也是用人单位
  • 苹果所有常用证书,appID,Provisioning Profiles配置说明及制作图文教程、

    概述 苹果的证书繁锁复杂 制作管理相当麻烦 今天决定重置一个游戏项目中的所有证书 做了这么多次还是感觉很纠结 索性直接记录下来 日后你我他查阅都方便 首先得描述一下各个证书的定位 作用 这样在制作的时候心中有谱 对整个流程的把握也会准确一些
  • 手机设置无密码时显示“已被管理员、加密政策或凭据存储停用”的解决办法

    前段时间手机上为了抓包安装了SSL证书 并且设置了锁屏密码 后来觉得锁屏密码很麻烦就想着关掉锁屏密码 发现无密码选项是灰色的 并且提示 已被管理员 加密政策或凭据存储停用 如下图 网上百度大多数办法就是 设置 gt 安全 gt 删除凭证 然
  • JAVA SM2 数字证书生成

    文章目录 Before Start Build with Maven QuickStart 生成自签名公私钥对 证书签名算法算法提供者 设置证书信息 标识信息构造 DN 获取扩展密钥用途构造 可选 证书信息构造 X 509格式证书对象生成
  • net::ERR_CERT_AUTHORITY_INVALID

    接口请求报错 net ERR CERT AUTHORITY INVALID 浏览器遇到这种不安全的证书会自动拦截 导致数据无法获取 问题分析 翻译一下 其实从字面意思就可以指定报错原因了 https的ssl证书有问题 解决办法 临时解决办法
  • .cer格式证书文件和 .pfx格式证书文件有什么区别?

    这里我们将讨论 cer 和 pfx 文件类型之间的差异 什么是数字证书 数字证书在电子通信中用作验证身份的密码机制 我们需要这些证书来建立安全的在线通信渠道 并确保数字数据的隐私 真实性和正确性 数字证书包括主题 实体详细信息 颁发者 CA

随机推荐

  • nginx源码分析--状态机执行

    11个阶段处理HTTP请求 void ngx http core run phases ngx http request t r ngx int t rc ngx http phase handler t ph ngx http core
  • Markdown格式文档图片设置居中

    1 使用div设置对齐方式 div align center img src 图片路径 div 此处的center可以更换 left 左对齐 right 右对齐 center 居中 下图示例 div align center img src
  • 《算法》第二章——快排非递归实现

    思路 其实就是用栈保存每一个待排序子串的首尾元素下标 下一次while循环时取出这个范围 对这段子序列进行partition操作 代码 include
  • 如何保证代码质量

    代码质量的评估维度很多 我自己的理解有这几个层次 能用 gt 能读 gt 能改 gt 能适应业务的变更 高质量的代码不是一蹰而就的的 是从特别小的细节例如变量命名规则到高大上的架构设计 一点点积累而成的 关于架构设计的部分 正在阅读 重构
  • 13、不同存储引擎的数据表在文件系统里是如何表示的?

    MySQL 支持 InnoDB MyISAM Memory Merge Archive CSV BLACKHOLE 几种存储引擎 不同存储引擎的数据表在文件系统中的表示也各不相同 MySQL 中的每一个数据表在磁盘上至少被表示为一个文件 即
  • 融云出海:社交泛娱乐出海,「从 0 到 1」最全攻略

    9 月 21 日 融云直播课社交泛娱乐出海最短变现路径如何快速实现一款 1V1 视频社交应用 欢迎点击上方小程序报名 本期我们翻到 地图 的实践篇 从赛道 品类选择 目标地区适配 用户增长 变现模式 本地化运营 跨国团队管理等方面完整描绘
  • 用matlab使用灰狼算法规划15个城市的最短路径

    在Matlab中使用灰狼算法规划15个城市的最短路径需要以下步骤 建立矩阵 首先 您需要建立一个矩阵来存储15个城市之间的距离 定义灰狼算法参数 然后 您需要定义灰狼算法的各种参数 例如种群数量 迭代次数 学习因子等 运行灰狼算法 接下来
  • "当B发生时,是A发生的概率降低了,可以由此推出,当B不发生时A发生的可能性增大了"的直观解释

    一 当B发生时 是A发生的概率降低了 可以由此推出 当B不发生时A发生的可能性增大了 数学上的推导是容易的 即 二 接下来找一种直观上的解释 设有一个矩形的面积为1 设其为事件 发生的概率 A发生的概率即为A的面积 A B同时发生的概率即为
  • 【数据结构】线性表的链式存储结构简单实现及应用

    链表是指用一组任意的存储单元来依次存放线性表的结点 这组存储单元即可以是连续的 也可以是不连续的 甚至是零散分布在内存中的任意位置上的 因此 链表中结点的逻辑次序和物理次序不一定相同 为了能正确表示结点间的逻辑关系 在存储每个结点值的同时
  • android 启动过程分析

    Servicemanager需要先启动 zygote后面的service需要用到servicemanager的服务
  • 使用R语言生成新的数据列

    使用R语言生成新的数据列 在R语言中 我们可以使用各种方法来生成新的数据列 这些方法可以帮助我们处理和分析数据 为我们提供更多的洞察力 本文将介绍几种在R语言中生成新数据列的常用方法 并提供相应的源代码示例 使用算术运算符生成新列 我们可以
  • 小程序整改获取用户隐私

    整改要求如下 请开发者自查并去除频繁跳出来的手机号登录界面 手机号授权弹窗 去除小程序内非必要页面的手机号登录界面 手机号授权弹窗 正常的内容浏览是不支持获取用户手机号或其他隐私信息 在必要场景下才告知用户需授权手机号 且页面需要有 用户协
  • Android初级教程 - 四大存储之SP存储

    1 SharedPreFerences是什么 是安卓的一种最轻量的储存类 储存为xml文件储存到 data data 包名 shared prefs下 一般用来存储一些比较简单的数据 比如用户名姓名 密码等等 2 如何储存数据 Shared
  • 软件测试大型网站如何进行压力测试及性能调优优化方案

    性能测试在大型网站系统的设计和开发中非常重要 通常会和容量预估等工作结合在一起 穿插在系统开发的不同方案 性能测试可以帮助我们及时发现系统的性能短板 评估系统的能 性能测试在大型网站系统的设计和开发中非常重要 通常会和容量预估等工作结合在一
  • CMake简介,打包so文件,编译实际项目

    CMake简介和使用示例 CMake是常用的跨平台编译器 图像这块在给服务端做开发时 常有两个需求 1 代码打成 so包 供别人调用 2 编译 测试 用valgrind测内存情况 工程较大时 借助CMake完成很方便 下面分别给出两种情况下
  • 含Java岗988道题分享 备战金九银十,你准备好了吗?,阿里,腾讯秋招面试题解析。

    在前段时间里公司的项目基本都很闲 很多人觉得工作起来没意思相继走了 而我考虑到自己的发展 并没有裸辞 而是一边上班 另一边在面试 从3月底开始面试 面到5月底 三十家公司 因为疫情原因有些面试是远程面试 我从不打没准备的仗 我是一个喜欢总结
  • chown 命令

    NAME chown change file owner and group SYNOPSIS chown OPTION OWNER GROUP FILE chown OPTION reference RFILE FILE 当使用 refe
  • 数据库-面试题(持续更新)

    来自牛客网的汇总 1 MySQL查询时 只有满足联接条件的记录才包含在查询结果 这种联接是 内联接 内联接 典型的联接运算 使用像 或 lt gt 之类的比较运算符 包括相等联接和自然联接 内联接使用比较运算符根据每一表共有的列的值匹配两个
  • 在simulink中查看bode图

    打开simulink 在library里面找到inport和outport 然后在inport和outport之间使用传递函数 想要查看bode图的传函 连接 按如下路径点击Analysis Control Design Linear An
  • 【2.学习__签名证书和加密证书】

    实习期学习一些签名和加密的知识 暂时先这样 有时间了再整理 学习的方法 先学习证书文件内容 结构 再针对问题进行学习 证书相关的知识 1 证书的结构大致是什么样的 证书的机构分为三部分 tbsCertificate 包含 主题 和 发行者的