Markdown语法与外挂标签写法汇总
1.Markdown语法自带格式参考:Markdown语法图文全面详解(10分钟学会) 注意:此页面偶尔会存在CSS冲突问题! 1.1 代码块示例源码渲染演示12345678910111213\```shell# VSCode终端hexo clean; hexo shexo clean; hexo g; hexo dgit add .; git commit -m "npm publish"; npm version patch; git push# Cmder终端hexo clean && hexo shexo clean && hexo g && hexo dgit add . && git commit -m "npm publish" && npm version patchgit push\```1234567891011# VSCode终端hexo clean; hexo shexo clean; hexo g; hexo dgit add...
python基础
Python基本数据类型Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。 在 Python 中,变量就是变量,它没有类型,我们所说的”类型”是变量所指的内存中对象的类型。 等号(=)用来给变量赋值。 等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。例如: 123456789101112counter = 100 # 整型变量miles = 1000.0 # 浮点型变量name = "runoob" # 字符串print (counter)print (miles)print (name)#输出1001000.0runoob 多个变量赋值Python允许你同时为多个变量赋值。例如:’ 1a = b = c = 1 以上实例,创建一个整型对象,值为 1,从后向前赋值,三个变量被赋予相同的数值。 您也可以为多个对象指定多个变量。例如: 1a, b, c = 1, 2, "runoob" 以上实例,两个整型对象 1 和 2...
公钥证书与 PKI 详解
在使用公钥加密算法和数字签名技术的时候都需要使用他人的公钥,那我们如何确保这个公钥的真实性呢?口说无凭,需要一个证明,这个证明就是由一个可信的认证中心颁布的一张证书。 公钥证书(Public Key Certificate)公钥证书( Public key certificate,PKc):用来证明公开密钥拥有者的身份。此文件包含了公钥信息、拥有者身份信息(主体)、以及数字证书认证机构(CA)对这份文件的数字签名。通常简称为证书 证书标准(X.509)常见的格式标准,包含以下关键字段: 证书的工作原理 PKI公钥基础设施(Public-Key lnfrastructure,PKI)是为了能够更有效地要运用公钥而制定的一系列规范和规格的总称。(PKI只是一个总称,并非指某一个单独的规范或规格。) PKI的组成要素 数字证书(Digital Certificate):包含公钥、持有者信息、CA签名等数据的电子文件。 根 CA:顶级信任源,通常离线保护。 中间 CA:由根 CA...
数字签名
数字签名我们日常生活中的书信或文件可以依据亲笔签名或印章来证明其真实来源。类似地,在计算机网络中传送的报文可以使用数字签名来证明其真实来源。 数字签名必须保证以下三点 (1)接收方能够核实发送方对报文的数字签名。 (2)包括接收方在内的任何人都不能伪造对报文的数字签名。 (3)发送方事后不能抵赖对报文的数字签名。 数字签名的实现 ...
报文摘要和报文鉴别码
报文摘要(Message Digest)和报文鉴别码(Message Authentication Code, MAC)是保障数据完整性和认证性的核心技术,常用于网络安全协议(如SSL/TLS、IPsec)和数字签名中。 报文完整性与鉴别的概念 如果报文被攻击者篡改或伪造,则报文就不具备完整性。 对报文进行完整性验证就是进行报文鉴别,也就是鉴别报文的真伪。 使用加密技术通常就可以达到报文鉴别的目的,因为被篡改的报文解密后一般不能得到可理解的内容。 报文摘要和报文鉴别码 使用报文摘要对报文进行鉴别的好处是:只对长度固定且比整个报文长度短得多的报文摘要𝑯(𝒎)进行加密,比对整个报文𝒎进行加密要简单得多。 密钥𝑲仅在通信双方之间共享,没有第三方能用伪造报文产生出使用密钥𝑲加密的伪造报文摘要。 附加在报文后面用于报文鉴别的码串(即加密后的报文摘要),称为报文鉴别码MAC。 密码散列函数 报文摘要算法MD实际上与帧检验序列、首部检验和等都是散列函数(Hash...
SHA-1算法
SHA-1(Secure Hash Algorithm 1)是一种广泛使用的密码散列函数,生成160位(20字节)的哈希值。尽管已被证实存在安全漏洞并逐步被SHA-2和SHA-3取代,但其算法设计仍具学习价值。 消息预处理填充消息:确保消息长度为512bit的倍数减64bit(即长度L ≡ 448 mod 512)。 第一位补 “1”,其余位补足够的0,直至满足长度 ≡ 448 mod 512 附加64位的原始消息长度(以位为单位,大端表示) 分块处理 将填充后的消息分割为多个 512位 的块。每个块进一步分为 16个32位字(记为 W[0] 到 W[15])。 扩展字生成将16个32位字扩展为 80个字(W[0] 到 W[79]): 对 t ≥ 16, W[t]=ROTL1(W[t−3]⊕W[t−8]⊕W[t−14]⊕W[t−16])其中,ROTLn 表示循环左移 n 位,⊕ 表示异或。 初始化哈希值SHA-1使用5个32位初始常量: H0 = 0x67452301H1 = 0xEFCDAB89H2 = 0x98BADCFEH3 = 0x10325476H4 =...
HMAC算法
核心结构 HMAC的公式为:HMAC(K,m)=H( (K⊕opad) || H ( (K⊕ipad) || m) ) 其中: H:哈希函数(如SHA-256)。 K:密钥,需处理为与哈希函数块长度一致。 ipad = 00110110 (0x36) 不断循环直至达到散列函数分组长度 opad = 01011100 (0x5c) 不断循环直至达到散列函数分组长度 || :拼接操作。 密钥处理 若 密钥长度 < Hash的分组长度:key = 密钥0000…(末尾填充0,直到长度达到Hash分组长度) 若 密钥长度 > Hash的分组长度: key = Hash( 密钥 ) (将密钥进行单向散列的结果作为key) 计算步骤 生成内部填充:Si = K ⊕ ipad 计算内部哈希:InnerHash=H(Si || m ) 生成外部填充:So = K ⊕ opad 计算最终HMAC:HMAC=H(So ||...
Diffie-Hellman密钥交换算法
Diffie-Hellman(DH)密钥交换算法是密码学中第一个实用的公钥协议,由Whitfield Diffie和Martin Hellman于1976年提出。它允许双方在不安全的信道上协商出一个共享密钥,无需预先共享秘密,其安全性依赖于离散对数问题(Discrete Logarithm Problem, DLP)。 核心思想 目标:双方(Alice和Bob)无需预先共享任何秘密,通过公开交换参数生成相同的密钥,用于后续加密通信 数学原理:基于离散对数问题(Discrete Logarithm Problem, DLP)的计算复杂性。已知大质数 p、生成元 g、以及A = gamod p,计算私钥 a 是困难的 算法过程 公共参数选择 Alice、Bob双方共享一个大素数q,以及证书a,且a是q的原根 原根即 a mod q,a 2 mod q,…… a n-1 mod q 可以得到1 ~ n-1 的所有整数 密钥生成 Alice生成私钥XA:随机选择整数 a(1 < a < p-1),并计算公钥 YA = gXA mod...
ECC椭圆曲线加密
椭圆曲线加密(ECC,Elliptic Curve Cryptography)是一种基于椭圆曲线数学的公钥加密技术,以其高安全性和高效性著称。以下从基础概念到实际应用进行详细解析: ECC的核心优势 短密钥高安全:相比RSA,ECC的密钥长度更短。例如,256位ECC密钥的安全强度相当于3072位RSA密钥 高效计算:ECC的加密、解密和签名生成速度更快,适合资源受限环境(如物联网设备、移动端)。 带宽节省:短密钥减少数据传输量,提升网络效率。 椭圆曲线的数学基础 椭圆曲线方程 标准形式:y2 = x 3 + ax + b(其中4a3 + 27 b2 !=0,避免奇点 ) 图形特性:关于x轴对称,光滑无自交点。 椭圆曲线上的点加法 几何解释:点加(P ≠ Q):画直线通过P和Q,交曲线于第三点R,取对称点-R即为P+Q。点倍(P = Q):取P点切线,交曲线于R,对称点-R即为2P。 群结构与标量乘法 加法群:椭圆曲线上的点及无穷远点构成阿贝尔群。 标量乘法:核心操作 kP = P + P + …… +...
AES加密算法
AES(Advanced Encryption Standard,高级加密标准)是一种对称加密算法,用于保护电子数据的安全。它由美国国家标准与技术研究院(NIST)于2001年发布,取代了过时的DES(Data Encryption Standard)。 AES基本特性 对称加密:加密和解密使用相同的密钥。 分组加密:每次处理固定长度的数据块(128位,即16字节)。 密钥长度:支持128位、192位和256位密钥,对应不同安全性级别。 轮数:根据密钥长度决定轮数: 128位密钥:10轮 192位密钥:12轮 256位密钥:14轮 二、AES加密流程1. 初始变换 2. 主轮循环SubBytes(字节代换) 通过16 × 16...