零知识证明基础:对称加密与非对称加密

1、绪论

在密码学体系中,对称加密、非对称加密、单向散列函数、消息认证码、数字签名和伪随机数生成器被统称为密码学家的工具箱。其中,对称加密和非对称加密主要是用来保证机密性;单向散列函数用来保证消息的完整性;消息认证码的功能主要是认证;数字签名保证消息的不可抵赖性。

在零知识证明中,涉及较多的加密方案是非对称密码体制( 又称为公钥密码体制) 。非对称密码体制使用公钥加密消息,使用私钥来解密。使用非对称密码体制可增强系统的安全性。

2、发展史

密码学的发展大致可以分为 3 个阶段: 1949 年之前的古典密码学阶段; 1949 年至 1975 年密码学成为科学的分支; 1976 年以后对称密钥密码算法得到进一步发展,产生了密码学的新方向—公钥密码学。1976 年,W.Diffie 和 M.Hellman 在发表的文章“密码学的新方向”中首次公开提出了公钥密码( Public-key Cryptography) 的概念。公钥密码的提出实现了加密密钥和解密密钥之间的独立,解决了对称密码体制中通信双方必须共享密钥的问题,在密码学界具有划时代的意义。

3、对称加密

对称加密整个加密过程中只使用一个密钥。所谓对称其实就是使用一把密钥加密,使用同一把密钥解密。

对称加密的主要有优点就是算法公开、计算量小、加密速度快、加密效率高;但是它也存在强大的缺点,一旦密钥泄露,别人可以获取到密钥,这样也能对密文进行解密。下面是对称加密的操作过程:

设用户 A A A把信息 M M M发送给用户 B B B A A A B B B不希望 M M M传递的过程中被第三方看到,可以采取的方法是, A A A先对 M M M进行处理。然后发送处理后的结果。对 M M M处理实际上是进行某种数学运算,运算结果我们用 E ( M ) E(M) E(M)表示, B B B收到 E ( M ) E(M) E(M)后,会按事前与 A A A约定好的方法从 E ( M ) E(M) E(M)中把M还原出来,结果我们用 D ( E ( M ) ) = M D(E(M))=M D(E(M))=M表示。第三方即使截获到 E ( M ) E(M) E(M),因为不知道还原方法,从而无法看到 M M M A A A B B B也就达到了秘密通信的目的。

前面过程中的 E E E我们称之为加密算法, D D D称之为解密算法,二元组 ( E , D ) (E,D) (E,D)表示一个特定的加/解密算法,这个二元组是 A A A B B B提前约定好的,当然二元组 ( E , D ) (E,D) (E,D)只有 A A A B B B知道,其他第三方是不知道的。

A A A与另一个网络用户 C C C安全通信时,就不能再用二元组 ( E , D ) (E,D) (E,D)了,需要改换成另一个加/解密二元组 ( E ′ , D ′ ) (E',D') (E,D)。由此看来, A A A与多个用户安全通信,就需要有多个加解密二元组。

开发多个加解密二元组不是一件容易的事,可以在加/解密二元组 ( E , D ) (E,D) (E,D)基础上增加一个参数, A A A B B B之外的其他用户通信只要选择不同的参数值就可以了。具体来说, A A A B B B之间的通信选择参数 s 1 s_1 s1 A A A C C C之间的通信选择 s 2 s_2 s2
,即使大家都采用二元组(E,D),也能做到安全通信,这就避免了为不同用户对开发不同的二元组了,这里的参数 s 1 s_1 s1 s 2 s_2 s2就是所谓的密码或者秘钥, s 1 s_1 s1
A A A B B B秘密保管, s 2 s_2 s2 A A A C C C秘密保管。

所有用户采用同一个加解密二元组 ( E , D ) (E,D) (E,D),只是不同用户对采用不同密钥的加解密体制,因此被称为对称加密体制。下面是对称密码体制的典型流程:


已知二元组 ( E , D ) (E,D) (E,D),用户 A A A B B B之间的共享密钥是 p p p A A A把信息 M M M安全发送给 B B B

  • A A A利用 p p p和加密算法 E E E对信息 M M M处理,结果记作 E p ( M ) E_p(M) Ep(M)
  • A A A E p ( M ) E_p(M) Ep(M)发送给 B B B
  • B收到 E p ( M ) E_p(M) Ep(M),并对 E p ( M ) E_p(M) Ep(M)用秘钥 p p p和解密算法 D D D处理,结果记作 D p ( E p ( M ) ) = M D_p(E_p(M))=M Dp(Ep(M))=M

常用的对称加密算法有 DES、3DES、AES、TDEA、Blowfish、RC2、RC4 和 RC5 等。

4、AES加密算法

AES 加密算法是一种分组密码体制,将明文按照固定大小进行分组,然后对每一分组进行加密。在加密过程中,AES 算法采用了多轮加密的方式,算法主要可以分为秘钥扩展、字节替换、行移位、列混合和轮秘钥加这5个步骤。

  • 秘钥扩展(KeyExpansions:在 AES 加密算法中,明文被分成若干个固定长度的块。常见的分组长度为 128 比特,即每个明文块包含 16 个字节。如果明文长度不是 16 的整数倍,则需要对原始秘钥进行填充。实际上密钥长度可以是 128 比特、192 比特或 256 比特。对于不同长度的密钥,需要经过不同的轮数来扩展密钥。具体而言,128 比特密钥需要经过 10 轮扩展,192 比特密钥需要经过 12 轮扩展,256 比特密钥需要经过14轮扩展。

  • 字节替换(SubBytes):字节替换是通 过 S-BOX对字节元素进行变换,S-BOX由有限域 G F 2 8 GF_{2^8} GF28上的乘法求逆运算和仿射变换运算而来,通过查表的方式即可直接得到变换前后的字节元素,替换后字节元素至少有两位发生变换,能充分打乱原来的字节元素。也可以认为S-BOX是一张固定大小的表格,由 256 个字节组成。通过输入表格中的某一字节,就可以得到表格中对应的输出字节。

  • 行移位(ShiftRows):将数据矩阵的每一行循环移位一定长度。

  • 列混合(MixColumns):将数据矩阵乘以一个固定的矩阵,增加混淆程度。

  • 轮秘钥加(AddRoundKey):将数据矩阵与秘钥矩阵进行异或操作。

下图为AES加密算法流程。
在这里插入图片描述
AES是用来替代DES的新一代加密标准,具有128bit的分组长度,支持128、192和256比特的密钥长度,它是目前最流行的对称加密算法之一。

5、非对称加密

非对称加密又称为公钥密码,该技术是针对私钥密码体制(对称加密算法)的缺陷被提出来的,非对称加密会产生两把密钥,分别为公钥(Public Key)和私钥(Private Key),其中一把密钥用于加密,另一把密钥用于解密。非对称加密的特征是算法复杂、安全性依赖于算法与密钥。但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。

在使用非对称加密时,任何人都可以使用预期接收者的公钥对消息进行加密,但该加密消息只能使用接收者的私钥解密。

已知公钥密码算法二元组 ( E , D ) (E,D) (E,D),用户 A A A把信息 M M M安全发给用户 B B B,下面是非对称密码体制的典型流程:


  • 利用 ( E , D ) (E,D) (E,D)为用户 A A A产生公钥 p a p_a pa,私钥 s a s_a sa,为用户 B B B产生公钥 p b p_b pb

,私钥 s b s_b sb;

  • A A A B B B的公钥 p b p_b pb和加密算法 E E E对消息 M M M进行处理,处理结果记为 E p b ( M ) E_{p_b}(M) Epb(M)

  • A A A E p b ( M ) E_{p_b}(M) Epb(M)发送给用户 B B B

  • B B B使用解密算法 D D D对收到的 E p b ( M ) E_{p_b}(M) Epb(M)进行处理,结果为 D s b ( E p b ( M ) ) = M D{s_b}(E_{p_b}(M))=M Dsb(Epb(M))=M


非对称加密中对任何用户,不能从公钥导出其私钥;用谁的公钥加密,只能用谁的私钥解密。

常用的非对称加密算发有 RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。

5、基于大整数素因子分解困难的RSA加密算法

RSA 算法是一种迄今为止理论上比较成熟和完善的公钥密码体制,是非对称密码体制的典型代表。在网络、信息安全等许多方面都使用 RSA 算法,特别是 RSA 算法典型应用在通信中的数字签名,可实现对手的身份、不可抵赖性验证。在身份认证、信息安全、电子商务中有着广泛的应用前景。

RSA加密算法相关的数学知识包括:


  • 欧几里得算法:即 gcd ⁡ ( a , b ) \gcd(a,b) gcd(a,b),值为 a a a b b b的最大公约数;
  • 互质:即 gcd ⁡ ( a , b ) = 1 \gcd(a,b) = 1 gcd(a,b)=1 <=> a a a b b b互质( a a a b b b没有1以外的公因子);
  • 欧拉函数:即 φ ( n ) \varphi (n) φ(n),值为所有不大于 n n n且和 n n n互质的自然数的个数
  • a ≡ b m o d P a ≡ b \mod P abmodP 表示 a a a b b b在模 P P P下同余,即 a a a除以 P P P得到的余数和 b b b除以 P P P得到的余数相同;
  • 欧拉费马定理:如果 gcd ⁡ ( a , n ) = 1 \gcd(a,n) = 1 gcd(a,n)=1,则 a φ ( n ) ≡ 1 m o d n a^{ φ(n)} ≡ 1 \mod n aφ(n)1modn.

RSA 算法由密钥生成、加密和解密 3个部分组成,具体如下。
密钥生成:

  • 产生两个大素数 p p p q q q
  • 计算 n = p × q n = p × q n=p×q,计算欧拉函数 φ ( n ) = ( p − 1 ) ( q − 1 ) φ(n) =(p - 1)(q - 1) φ(n)=(p1)(q1)
  • 选择整数 e e e,使其满足条件: 1 < e < φ ( n ) 1 < e < φ(n) 1<e<φ(n),且 gcd ⁡ ( e , φ ( n ) ) = 1 \gcd(e,φ(n)) = 1 gcd(e,φ(n))=1
  • 计算 e e e 的逆元 d d d d ⋅ e ≡ 1 m o d φ ( n ) d\cdot e ≡ 1 \mod φ(n) de1modφ(n)(注:由于 gcd ⁡ ( e , φ ( n ) ) = 1 \gcd(e,φ(n)) = 1 gcd(e,φ(n))=1,则 d d d一定存在);
  • 取序对 ( e , n ) (e,n) (e,n) 为公钥,可公开; ( d , n ) (d,n) (d,n)为私钥,对外保密。

加密:

  • 将要发送的字符串分割为长度为 m < n m < n m<n 的分组,然后对分组 m i m_i mi执行加密运算,得到密文 c i : c i ≡ ( m i ) e m o d n c_i :c_i ≡(m_i)^e \mod n cici(mi)emodn

解密:

  • 收到密文 c i c_i ci后,接收者使用自己的私钥执行解密运算,得到明文 m i : m i ≡ ( c i ) d m o d n m_i :m_i ≡(c_i)^d \mod n mimi(ci)dmodn

如果有任何人想要破解私钥 d d d,那就必须算出 φ ( n ) φ(n) φ(n)(因为 d d d满足 d ⋅ e m o d φ ( n ) ≡ 1 d\cdot e \mod φ(n)≡1 demodφ(n)1,且 e e e n n n是公开的),根据欧拉公式, φ ( n ) = ( p − 1 ) x ( q − 1 ) φ(n) = (p - 1) x (q - 1) φ(n)=(p1)x(q1),而通过一个大整数 n n n分解得到它的两素因子 p p p q q q是极端困难的,所以RSA的安全性也取决于这个大整数 n n n的位数.

6、基于离散对数难解性的ECC加密算法

椭圆曲线加密算法(ECC)是基于椭圆曲线数学的一种非对称密码算法,是建立在基于离散对数问题上的密码体制。随着分解大整数方法的进步以及各方面的完善,RSA 算法渐渐不能满足现状,ECC算法的需求性逐渐增大。ECC 以其明显的“短密钥”优势得到了广泛应用,并逐渐被确定为许多编码方式的数字签名标准。然而,ECC算法复杂度高,实现相对复杂,需要复杂的椭圆曲线运算。

ECC加密算法相关的椭圆曲线知识:


  • 韦尔斯特拉方程 : E : y 2 + a x y + b y = x 3 + c x 2 + d x + e E:y^2+axy+by=x^3+cx^2+dx+e E:y2+axy+by=x3+cx2+dx+e。密码学中,常采用的椭圆曲线为: E : y 2 = x 3 + a x + b E:y^2=x^3+ax+b E:y2=x3+ax+b,并要求 4 a 3 + 27 b 2 ≠ 0 4a^3 + 27b^2≠0 4a3+27b2=0,且椭圆曲线有且只有一个无穷远点 O O O ;
  • Hasse定理:如果 E E E是有限域 G F p GF_p GFp上的椭圆曲线, ( x , y ) (x,y) (x,y) E E E上的点,其中 x , y ∈ G F p x,y\in GF_p x,yGFp,曲线上的每个点都是非奇异的;
  • 椭圆曲线上的点集合对于加法规则构成一个Abel群: O + O = O O+O=O O+O=O;
    椭圆上的点 P P P P + O = P P+O=P P+O=P P P P的逆元是 − P -P P,且 P + ( − P ) = O P+(-P)=O P+(P)=O;加法满足交换律和结合律;
  • 椭圆曲线加法;椭圆曲线上的点 P ( x 1 ​ , y 1 ​ ) P(x_1​ ,y_1​ ) P(x1,y1), Q ( x 2 ​ , y 2 ​ ) Q(x_2​ ,y_2​ ) Q(x2,y2)的和 R ( x 3 ​ , y 3 ) R(x_3​ ,y_3 ) R(x3,y3)有如下关系:
    在这里插入图片描述
  • 如果椭圆曲线上一点 P P P,存在最小的正整数 n n n使得数乘 n P = O n P = O nP=O
    ,则将 n n n称为 P P P的阶,若 n n n不存在,则 P P P是无限阶的.

ECC算法也是由密钥生成、加密和解密 3个部分组成,具体如下。
密钥生成:

  • 选择一个椭圆曲线 E E E,构造一个椭圆群 E p ( a , b ) E_p(a,b) Ep(a,b)。。
  • 在椭圆群中挑选生成元点 G = ( x 0 , y 0 ) G=(x_0,y_0) G=(x0,y0),需满足 n G = O nG=O nG=O的最小的 n n n是一个非常大的素数。
  • 选择一个小于 n n n的整数 n B n_B nB作为私钥,然后利用 P B = n B G P_B=n_BG PB=nBG算出 P B P_B PB
  • 公钥为 ( E , n , G , P B ) (E,n,G,P_B) (E,n,G,PB),私钥为 n B n_B nB

加密:

  • 用户A将明文消息编码成一个数 m < p m<p m<p,并在椭圆群 E p ( a , b ) E_p(a,b) Ep(a,b)中任选一点 P t = ( x t , y t ) P_t=(x_t,y_t) Pt=(xt,yt);
  • 在区间 [ 1 , n − 1 ] [1,n-1] [1,n1]内,用户A选取一个随机数 k k k,计算 P 1 : P 1 = ( x 1 , y 1 ) = k G P_1:P_1=(x_1,y_1)=kG P1P1=(x1,y1)=kG;
  • 依据接收方 B B B的公钥 P B P_B PB,用户 A A A计算点 P 2 : P 2 = ( x 2 , y 2 ) = k P B P_2:P_2=(x_2,y_2)=kP_B P2P2=(x2,y2)=kPB
  • 用户 A A A计算密文 C = m x t + y t C=mx_t+y_t C=mxt+yt;
  • A A A传送加密数据 C m = { k G , P t + k P B , C } C_m=\{kG,P_t+kP_B,C\} Cm={kG,Pt+kPB,C}给接收方 B B B.

解密:

  • 接收方 B B B收到 C m C_m Cm;
  • 接收方 B B B使用私钥 n B n_B nB做运算: P t + k P B − n B ( k G ) = P t + k ( n B G ) − n B ( k G ) = P t P_t+kP_B-n_B(kG)=P_t+k(n_BG)-n_B(kG)=P_t Pt+kPBnB(kG)=Pt+k(nBG)nB(kG)=Pt;
    *接收方 B B B计算 m = ( C − y t ) / x t m=(C-y_t)/x_t m=(Cyt)/xt,得明文 m m m

密码学中,描述一条 F p F_p Fp上的椭圆曲线,常用到六个参量: T = ( p , a , b , G , n , h ) T=(p,a,b,G,n,h) T=(p,a,b,G,n,h) ( p , a , b ) (p ,a ,b) (p,a,b)用来确定一条椭圆曲线, G G G为基点, n n n为点 G G G的阶, h h h 是椭圆曲线上所有点的个数 m m m n n n相除的整数部分.

这几个参量取值的选择,直接影响了加密的安全性。参量值一般要求满足以下几个条件:


  • 1、 p p p当然越大越安全,但越大,计算速度会变慢,200位左右可以满足一般安全要求;
  • 2、 p ≠ n × h p≠n×h p=n×h
  • 3、 p t ≠ 1 m o d n , 1 ≤ t < 20 pt≠1 \mod n,1≤t<20 pt=1modn1t<20
  • 4、 n n n为素数;
  • 5、 h ≤ 4 h≤4 h4

7、比特币中的非对称加密ECC

比特币系统选用的secp256k1中,ECC参数为:
p = 0 x F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F E F F F F F C 2 F p=0xFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F p=0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F
= 2 256 − 2 32 − 2 9 − 2 8 − 2 7 − 2 6 − 2 4 − 1 = 2^{256} − 2^{32} − 2^9 − 2^8 − 2^7 − 2^6 − 2^4 − 1 =225623229282726241,

a = 0 a = 0 a=0

b = 7 b = 7 b=7,

G = ( 0 x 79 B E 667 E F 9 D C B B A C 55 A 06295 C E 870 B 07029 B F C D B 2 D C E 28 D 959 F 2815 B 16 F 81798 , 0 x 483 a d a 7726 a 3 c 4655 d a 4 f b f c 0 e 1108 a 8 f d 17 b 448 a 68554199 c 47 d 08 f f b 10 d 4 b 8 ) G=(0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798, 0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8) G=(0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798,0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8),

n = 0 x F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F E B A A E D C E 6 A F 48 A 03 B B F D 25 E 8 C D 0364141 n = 0xFFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141 n=0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141,

h = 01 h = 01 h=01.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/362085.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工具篇:鸿蒙DevEco Studio5.0版本下载及安装

1、下载中心地址 下载中心 | 华为开发者联盟-HarmonyOS开发者官网&#xff0c;共建鸿蒙生态 2、安装 DevEco Studio支持Windows和macOS系统&#xff0c;下面将针对两种操作系统的软件安装方式分别进行介绍。 Windows环境 运行环境要求 为保证DevEco Studio正常运行&#…

人工智能AI风口已开:如何赋予UI设计与视频剪辑新生命

随着科技的浪潮不断向前推进&#xff0c;人工智能&#xff08;AI&#xff09;正以惊人的速度重塑着我们的世界&#xff0c;特别是在创意产业的核心领域——UI设计与视频剪辑中&#xff0c;AI正逐步成为驱动行业创新与变革的关键力量。在这个AI技术全面开花的新时代&#xff0c;…

将产品制作成3D模型在网站上展示需要多少费用?

将产品制作成3D模型并在网站上展示的费用会因多种因素而异&#xff0c;包括模型的复杂度、所需的细节程度、制作3D模型的软件和工具、以及是否需要专业设计师的服务等。此外&#xff0c;不同的3D模型制作服务提供商可能会有不同的定价标准。 如果能自己制作3D模型&#xff0c;…

高性能并行计算华为云实验三:蒙特卡罗算法实验

目录 一、实验目的 二、实验说明 三、实验过程 3.1 创建蒙特卡罗算法源码 3.2 Makefile的创建与编译 3.3 主机文件配置与运行监测​​​​​​​ 四、实验结果与分析 4.1 原教程对应的实验结果 4.2 改进后的实验结果 五、实验思考与总结 5.1 实验思考 5.2 实验总结…

JAVA编程题期末题库【中】

8.计算邮资 程序代码: public static void main(String[] args) {// 计算邮资//if多分支语句//创建对象java.util.Scanner inputnew java.util.Scanner(System.in); //提示输入用户&#xff0c;输入邮件的重量System.out.println("邮件的重量&#xff1a;");int wei…

智能疏散指示系统为什么是验收的必然考核标准?哪些厂家具备资质

智能疏散系统需要什么&#xff1f;现阶段&#xff0c;随着我国经济不断发展趋势的加快&#xff0c;住宅建筑具有复杂的特点。近年来&#xff0c;我国高层住宅、大中型建筑、综合性公共建筑越来越多。随着这座现代建筑的进步&#xff0c;我发现这种类型的建筑在发生火灾或事故时…

Spring系统学习 - FactoryBean和基于XML的自动装配

Factory Bean Spring的FactoryBean是一个特殊的Bean&#xff0c;用于创建其他Bean实例。FactoryBean接口定义了一个工厂Bean&#xff0c;该Bean可以用来生成其他Bean的实例。通过实现FactoryBean接口&#xff0c;开发人员可以自定义Bean的创建逻辑&#xff0c;实现更灵活的Bea…

达梦数据库修改日期时间格式和语言

1、问题 重装了达梦数据库后&#xff0c;通过达梦管理工具查询&#xff0c;表字段timestamp类型变成了中文 对于2023-11-01 01:55:33格式时间插入报错&#xff0c;非法的时间日期类型数据 2、查询配置 通过DM8系统管理员手册查到相关配置 通过命令进行查询显示&#xff0c;语…

pd虚拟机 Parallels Desktop 19 for Mac 破解版小白安装使用指南

Parallels Desktop 19 for Mac 乃是一款适配于 Mac 的虚拟化软件。它能让您在 Mac 计算机上同时运行多个操作系统。您可借此创建虚拟机&#xff0c;并于其中装设不同的操作系统&#xff0c;如 Windows、Linux 或 macOS。使用 Parallels Desktop 19 mac 版时&#xff0c;您可在 …

1500平方米气膜羽毛球馆的造价分析—轻空间

随着全民健身热潮的兴起&#xff0c;气膜羽毛球馆因其良好的空气质量、恒温恒湿的环境和快捷的建设速度&#xff0c;受到了越来越多人的欢迎。建造一个1500平方米的气膜羽毛球馆涉及多个方面的费用&#xff0c;包括场地准备、设备材料、安装施工、配套设施等。轻空间将详细分析…

2024-6-27 石群电路-31

2024-6-27&#xff0c;星期四&#xff0c;12:52&#xff0c;天气&#xff1a;雨&#xff0c;心情&#xff1a;晴。今天没有什么事情发生&#xff0c;继续学习&#xff0c;加油&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 今日观看了石群老师电路课程的视频…

什么类型的网站需要配置OV证书

目录 什么网站更适合OV证书&#xff1a; 申请OV需要注意&#xff1a; 申请单位组织验证型OV SSL证书的详细步骤 OV SSL证书全称Organization Validation SSL(组织验证性SSL证书)&#xff0c;是一种需要验证网站真实身份的数字证书。通过证书颁发机构审查网站企业身份和域名所…

nacos在k8s上的集群安装实践

目录 概述实践nfs安装使用 k8s持久化nacos安装创建角色部署数据库执行数据库初始化语句部署nacos ingress效果展示 结束 概述 本文主要对 nacos 在k8s上的集群安装 进行说明与实践。主要版本信息&#xff0c;k8s: 1.27.x&#xff0c;nacos: 2.0.3。运行环境为 centos 7.x。 实…

苹果应用Testflight上架完整步聚

1.全部选中下图内容,包含iPhone与iPad屏幕所有旋转方向 2. 准备App图标,一定要有152和167这个尺寸,不然后提交不过 3.1024这个尺寸的的图像不能有透明层,不然提交不通过 4.选中编译设备为Any iOS Device[arm64] 5.选择Product下的Archive进行生成 6.在弹出的窗口中选择Test…

Linux rpm与yum

一、rpm包管理 rpm用于互联网下载包的打包及安装工具&#xff0c;它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。RPM是RedHat Package Manager (RedHat软件包管理工具&#xff09;的缩写&#xff0c;类似windows的setup.exe&#xff0c;这一文件格式名称虽然打上了R…

c语言学习记录(十)———函数

文章目录 前言一、函数的基本用法二、函数的参数传递1.基本方式2 数组在函数中的传参 前言 一个学习C语言的小白~ 有问题评论区或私信指出~ 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、函数的基本用法 函数是一个完成特定功能的代码模块&…

GD32F303 使用PA8输出内部时钟频率

前面给小伙伴介绍过串口发送和接收异常可能的一些原因&#xff0c;其中就有说到时钟频率对于异步通讯的重要性。而我们通过程序去配置的时钟都是理论值&#xff0c;那如果想要获得内部一些时钟频率的实际值&#xff0c;需要怎样做呢&#xff1f;今天&#xff0c;我们以GD32F303…

备忘录模式(大话设计模式)C/C++版本

备忘录模式 C #include <iostream> #include <string> using namespace std;// Memento类&#xff0c;备忘录&#xff0c;此处为角色状态存储箱 class RoleStateMemento { private:int m_vit; // 生命力int m_atk; // 攻击力int m_def; // 防御力 public:RoleStat…

力扣每日一题 6/27 字符串 贪心

博客主页&#xff1a;誓则盟约系列专栏&#xff1a;IT竞赛 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 2734.执行子串操作后的字典序最小字符串【中等】 题目&#xff1a; 给你一…

使用MySQL WorkBbench 连接远程服务器上的mysql教程(包含踩过的坑)

最近在学习MySQL&#xff0c;想要装一个可视化程序&#xff0c;但是希望把脏活累活留给服务器&#xff0c;于是自己电脑上安装了一个MySQL Workbench作为Client。下面记录一下配置的过程。 服务器端MySQL配置 安装MySQL这里就不赘述啦&#xff0c;可以参考 https://segmentfa…