摘要

隐私集合求交(PSI)是安全多方计算(MPC)中的一种密码学技术,它允许参与计算的双方,在不获取对方额外信息(除交集外的其它信息)的基础上,计算出双方数据的交集。隐私集合求交在数据共享,广告转化率,联系人发现等领域有着广泛的应用空间。本文对隐私集合求交的各项实现技术做了介绍和对比,对隐私集合求交的原理进行了分析,并进一步阐述了隐私集合求交目前面临的挑战和发展前景。

【关键词】:隐私集合求交,安全多方计算,不经意传输

1 引言

隐私集合求交(PSI)是安全多方计算(MPC)中的一种密码学技术,它允许参与计算的双方,在不获取对方额外信息(除交集外的其它信息)的基础上,计算出双方数据的交集。随着大数据,人工智能,云计算等技术的兴起,企业和个人对隐私数据的保护越来越重视。隐私集合求交,作为安全多方计算中的关键技术,在近年来的理论研究也得到了长足的发展。

在数字经济的众多安全威胁中,数据泄露已成为全球范围高发的安全事件之一,且这个趋势仍在持续。

  • 2018 年,Facebook 因向第三方公司恶意泄露其用户信息被判罚数十亿美元
  • 2019 年,字节跳动因收集未成年人信息被罚款总计约 1 亿美元
  • 2020 年,中国电信 2 亿用户信息被贩卖,相关人员被判刑并处以罚款
  • 2021 年,亚马逊因违反数据隐私法规被处罚 8.88 亿美元

在这些数据安全问题中,有人为原因的故意泄露,也有技术缺陷导致的数据泄露。数据隐私问题,直接影响着企业的利益和信用,甚至因此导致企业倒闭。

随着中国在信息化和数字化的持续发展,大量具有敏感性和私密性的个人和企业信息在互联网上传播。如何安全地利用这些信息为企业和个人提供便捷的服务,同时又能保障信息不在传输过程中被泄露,对数字经济的健康发展,有着非常重要的作用和意义。

2021 年 6 月 10 日,十三届人大常委会第二十九次会议通过了《数据安全法》

2021 年 8 月 20 日,十三届人大常委会第三十次会议表决通过《中华人民共和国个人信息保护法》。

可以预见,对个人和企业隐私数据的保护,会被越来越多的企业和个人重视。我们通过对隐私集合求交的现状和发展的综述,重点介绍隐私集合求交的技术原理,为建立企业和个人对隐私数据保护的重视和信任,提供理论依据,并对隐私集合求交的发展前景进行分析,推进隐私计算的基础研究和商业应用发展。

2 基础原语

2.1 安全模型

安全模型又被称为对手模型或敌手模型,被用来衡量一个协议的安全等级。基于模型的安全假设,通常把安全模型分为诚实(honest),半诚实(semi-honest)和恶意(malicious)三种。

  • 诚实型对手会完全按照密码学的协议执行,并且不会主动尝试获取额外的信息。
  • 半诚实型对手会完全按照密码学的协议执行,但会尽可能尝试从收到的信息中获取额外的信息。
  • 恶意模型不会严格按协议执行,他们可以做任何事情来达到获取额外信息的目的。

迄今为止,隐私集合求交的协议,大多基于对手模型是半诚实模型的前提下进行的研究。对抗恶意模型的协议,虽然提供了更好的安全保障,但通常具有较为低下的执行效率 [8]。虽然半诚实模型不能对协议的双方提供完全的安全保护,但基于半诚实模型的协议的研究,可以为对抗恶意模型的协议,提供技术储备。并且基于对手模型为半诚实模型的协议,可以通过配合诸如随机预言,惩罚性措施等多种技术手段,来达到接近恶意模型下的协议的效果。

2.2 秘密共享

秘密共享(Secret Sharing,SS)是将一份原始秘密信息,拆分成多份。再把多份数据,分给不同的用户持有。其中的任何一份数据,都不能够完全恢复原始的秘密信息。只有达到指定数量的用户,集合他们手中持有的秘密,经过计算才能得出原始的秘密信息。秘密共享的关键在于秘密的拆分方式和恢复方法。秘密共享已经成为密码学中的一个重要分支,是信息安全和数据保密中的重要手段,被广泛应用于电子支付,密钥托管和隐私保护领域。

2.3 同态加密

同态加密(Homomorphic Encryption,HE)是将数据加密后,对加密数据进行运算处理,之后对数据进行解密,解密结果等同于数据未进行加密,并进行同样的运算处理。目前,同态加密支持的运算主要为加法运算和乘法运算。按照其支持的运算程度,同态机密分为半同态加密(Partially Homomorphic Encryption, PHE)和全同态加密(Fully Homomorphic Encryption, FHE)。半同态加密在数据加密后只持加法运算或乘法运算中的一种,根据其支持的运算的不同,又称为加法同态加密或乘法同态加密。半同态加密由于机制相对简单,相对于全同态加密技术,拥有着更好的性能。全同态加密对加密后的数据支持任意次数的加法和乘法运算。

3 隐私集合求交的主要技术方案

3.1 朴素哈希求交技术

图 1 朴素哈希求交法

朴素哈希(simple hashing)求交技术 [1] 的原理是使用哈希函数,把集合中的元素映射到一个均匀分布的空间。利用哈希函数的不可逆的性质,传输映射后的数据并进行比对求交。

朴素哈希求交法是一种非安全的求交方法。如果发送者 Alice 持有的数据集 X 的样本空间 Ω 较小(比如手机号码或特定的电子邮件等),那么 Bob 在接收数据后,可以进行对样本空间内的所有数据进行哈希计算来破解。即使要比对的数据拥有足够大的样本空间,朴素哈希求交法也并非绝对安全,接收者 Bob 仍可以根据获取到的计算后的数据,判断 Alice 是否具有哪些特定的信息。

实际应用中,为了对抗彩虹表攻击,朴素哈希求交法一般会在运行时通信双方临时协商一个随机的盐值,在哈希计算时使用对应的盐值进行加盐哈希计算。加盐朴素哈希的隐私集合求交一般过程为:

  1. 发送者 Alice 持有数据 X={x1, x2, ..., xm}, 接收者 Bob 持有数据 Y=
  2. Alice 和 Bob 使用相同的哈希函数 H
  3. Alice 生成随机盐值 Salt 并发送给 Bob
  4. Bob 使用 salt 对所有 Y 进行哈希计算 hyi  = H(yi, salt)
  5. Alice 使用 Salt 对所有 X 进行哈希计算 hxi = H (xi, salt), 并发送 hxi 给 Bob
  6. Bob 计算 {hx1, hx2, ..., hxm }∩{hy1, hy2, ..., hyn } 的结果为 Alice 和 Bob 数据的交集

朴素哈希求交法,是目前 PSI 协议中,性能最优的协议。由于协议本身不具备安全求交能力,一般只能应用在特定问题下的非敏感数据的求交场景。

3.2 姚氏混淆电路

姚氏混淆电路(Yao’s Garbled Circuits)[2] 协议由 1986 年由图灵奖获得者姚期智院士提出,用来解决著名的姚氏百万富翁问题。混淆电路使用布尔电路(与,或,非等)构建电路表,保障计算的过程中,双方的数据不被泄露。最终根据混淆电路的计算结果,以及混淆电路表,可以计算双方数据的计算结果。

图 2 完整的姚氏电路 [2]

一个典型的姚氏混淆电路的计算过程分为混淆电路生成阶段,电路执行阶段和电路评估阶段。

  1. 混淆阶段,Alice 生成一个布尔混淆电路表,使用混淆电路表为每个布尔值生成密钥。Alice 对混淆电路的计算结果,使用布尔电路中对应的密钥进行加密,打乱顺序后和自己持有的数据 X 对应的密钥信息发送给 Bob。
  2. 执行阶段,Bob 根据自己持有的数据 Y,通过 OT 协议获取混淆电路表对应的密钥信息。Bob 使用自己持有的数据对应的密钥和 Alice 给的密钥对 Alice 发送过来的混淆电路的计算结果进行解密,其中,只有 Alice 和 Bob 持有的数据对应的混淆电路的数据,能够被正常解密。
  3. 评估阶段,Bob 发送解密后的值给 Alice,Alice 对照混淆电路计算结果,得出最终的计算结果。

图 3 用于相等比较的混淆电路设计

混淆电路的设计不仅可以应用在隐私集合求交的数据相等的比较场景,也可以应用于安全的数据大小比较,模糊查询等场景。 基于混淆电路的方案相较于热门的基于不经意传输的方案在性能上处于劣势,且同样基于半诚实的对手模型,使得此方案目前在实际应用中使用较少。

3.3 基于同态加密

图 4 基于全同态加密的隐私集合求交协议 [5]

2017 年,Hao Chen 等人,给出基于全同态加密(FHE)的隐私集合求交方法 [5]。基于同态加密的隐私集合求交方法主要是对数据进行同态加密,并使用加密后的数据和原始数据构建多项式并计算多项式的值。其主要步骤为:

  1. 发送者 Alice 持有数据 X={x0, x1, ..., xn-1}, 接收者 Bob 持有数据 Y=
  2. Bob 生成同态加密密钥,并对集合中的所有数据进行全同态加密生成新的集合 C =
  3. Alice 生成随机一组随机数 R,并使用如下公式来计算多项式的值。Alice 将计算结果的数据集 {d0, d1, ..., dn-1} 发送给 Bob
  4. Bob 对数据集进行解密,收集所有解密结果为 0 的数据,即是数据集 X 与数据集 Y 的交集。

在交互过程中,Alice 收到的是同态加密后的数据,所以 Alice 不知道 Bob 的数据集 Y 的信息。Bob 收到的是经过多项式计算后的同态加密数据,如果解密后的结果为 0,Bob 知道对应的数据存在于 Alice 的数据集 X 中,否则解密后的数据对于 Bob 来说是一个随机数。

在上述过程中,Bob 对数据集 Y 内的所有数据进行同态加密,Alice 计算高阶多项式,和 Bob 对多项式计算结果进行解密是方案中对性能负面影响较大的行为。在 Chen 等人的方法中,针对这些问题进行了一些列的优化处理,其中包括使用布谷鸟哈希方法和批处理同态加密,降低协议的计算开销和通信开销。使用分窗的方法来加速高阶多项式计算。

基于同态加密的隐私集合求交,只对一方的数据进行同态加密和解密,使得此方案适合双方的数据集大小差异较大的场景(n>>m)。

同态加密算法目前是一种低效的加密算法,全同态加密的密文长度通常非常大,使得目前基于同态加密的隐私集合求交方案在性能上不占据优势。

特别地,Chen 的基于全同态加密的隐私集合求交方案,只对接受者一侧执行同态加密,这使得算法适合运行在求交的集合差异较大的场景。

3.4 基于公钥加密

图 5 RSA 盲签名协议 [7]

基于 RSA 的求交法 [6] 最早由 Meadows 等人于 1986 年提出,协议的主要思想是通信的双方各自生成一个大素数,对数据进行乘方运算,并比对计算的结果。2010 年,Cristofaro 等人提出的基于 RSA 盲签名的隐私集合求交技术 [7],是目前性能最好的基于公钥加密的隐私集合求交技术。其一般步骤为:

  1. 发送者 Alice (Server) 持有数据 S={s1, s2, ..., sw}, 接收者 Bob 持有数据 C=
  2. Alice 和 Bob 使用相同的哈希函数 H 和 H`,Bob 有持有 RSA 的私钥 (n, e),并将公钥 (n, d) 发送给 Alice
  3. 离线阶段:

3.1. Alice 使用公钥对每个 S 计算 hsj = H(sj), Ks:j = RSA(hsj ), tj = H`(Ks:j)

3.2. Bob 生成随机数 Rc:i (Rc:i< n 且 gcd (Rc:i, n) = 1),并使用私钥对数据 C 计算 hci = H(ci), yi = hci * RSA(Rc:i)

  1. 在线阶段:

4.1. Bob 发送所有 yi 给 Alice

4.2. Alice 使用私钥计算 yi' = RSA(yi)

4.3. Alice 发送所有 yi' 和 tj 给 Bob

4.4. Bob 计算 Kc:i = (yi' / Rc:i) mod n, ti' = H'(Kc:i)。之后计算 { t1' , t2', ..., tn' }∩{t1, t2, ..., tw}, 输出的结果为 Bob 和 Alice 数据的交集

基于 RSA 的求交协议,比较典型的是 RSA 盲签名求交协议。RSA 盲签名求交协议是对基于 RSA 的求交协议(基于 RSA 的密钥交换方法)的改进方法,可以在对手是恶意模型时,安全计算数据的交集,并提供了更好的计算性能。算法分为离线阶段和在线阶段,其中离线阶段操作可以在数据预处理阶段完成。实际执行求交算法时,只对一方的数据执行一次 RSA 加密操作,相较于其它基于 RSA 的求交协议,具有更好的性能优势。RSA 盲签名算法的正确性基于如下公式 (注意原论文中的 Kc:i = yi' / Rc:i, 实际应为 Kc:i = (yi' / Rc:i) mod n, 作者在后续论文中有纠正):

其原理是使用大数的离散对数没有有效的计算方法的特点,Alice 对 Bob 持有的伪随机数据进行签名,Bob 去除伪随机得到签名过的自己的数据,再和 Alice 端的签名数据做对比求交。

由于 RSA 计算复杂度较高,协议中 RSA 的计算次数会随着数据量的增大呈线性增长,使得基于 RSA 的求交方法,在数据量较大时会产生性能问题。

由于 RSA 盲签名算法在运行时只对一端的数据进行 RSA 加密,使得在求交数据量级差距较大时,可以把数据量较小的一端作为 Client 端,这样可以获得非常大的性能优势。另外,RSA 算法的流程适合并行处理,方便利用并行计算来提升性能。

RSA 盲签名协议能够在恶意对手模型下,为隐私集合求交提供安全保障,但由于非对称加密的次数随比对的数量量的增加呈线性增长,所以无法处理海量数据的隐私集合求交场景。

3.5 基于不经意传输

图 6 不经意传输

OT(Oblivious Transfer)是基础的密码学原语,中文译为不经意传输,茫然传输。OT 协议最早于 1981 年由 Michael O. Rabin 提出,协议由发送方和接收方两方参与,接收方请求获取信息,发送方发送信息给接收方。在这个过程中,发送方对接收方的请求信息一无所知,同时接收方也无法获取请求的信息之外的额外信息。OT 协议主要利用有限的非对称加密技术,达到安全传输大量数据的功能

2014 年,Pinkas 等人提出了基于 OT 扩展协议的高效隐私集合求交方案 [8],该方案使用 OT 扩展,传输数据使得通信双发获得一个伪随机函数,并使用此伪随机函数对双方持有的数据进行加密比对。方案主要分为三个阶段来执行,哈希阶段,隐秘传输阶段和求交阶段。在哈希阶段,通信 Alice 和 Bob 把各自持有的数据通过哈希运算均匀分布在一个给定大小的地址空间内,并使用随机数填充空余的哈希位置。在隐秘传输阶段,Bob 根据自己持有数据的比特信息作为选择位,使用 OT 扩展安全地获取 Alice 持有同样比特位置上的伪随机生成数据。最后在求交阶段,Bob 解密伪随机数据,并和自己持有的而数据进行比较。

2016 年,Kolesnikov 使用批量 OT 扩展传输和布谷鸟哈希实现了更高效的隐私集合求交方案 [9],基于 OT 的隐私集合求交成为性能上最仅仅朴素哈希求交技术的隐私集合求交方案。2019 年,Pinkas 等人提出了基于稀疏扩展的隐私集合求交方案 [10],方案首先把秘密信息分成三份,这样在未获取到要求交的数据之前,可以提前随机生成两份秘密信息,以便在离线阶段进行 OT 扩展传输,提前获取伪随机生成函数。在在线阶段,为了避免传输大量的秘密信息,方案使用了多项式技术,把要传输的数据融入多项式,仅传递多项式的参数来代替传输大量数据。根据该方案的测试结果,在要对比的数据量庞大,或者带宽受限制场景下,此方案相较于目前最优的基于 OT 的隐私集合求交方案,提供了更好的性能优势。

虽然基于不经意传输的隐私集合求交技术仍然是使用非对称加密技术作为其实现原理,但不经意传输使用有限次非对称加密,来完成任意数量的安全数据传输。基于不经意传输的隐私集合求交方案,是目前研究最为活跃的隐私集合求交方案。

4 隐私集合求交前景展望

隐私集合求交作为安全多方计算的关键技术,自诞生以来,得到了企业,个人和机构的高度的关注,目前仍在快速发展中。近些年来,频繁出台的隐私和信息保护的法律法规,促使了我国在隐私计算领域相关的研究和落地的高速发展。目前最为流行的隐私集合求交方案是基于不经意传输的隐私集合求交方案,对该方案的研究是基于安全性和性能平衡后的一种考量,研究的思路主要在减少非对称加密次数和通信双方传输的数据量。

虽然隐私集合求交技术在最近这些年得到了长足的发展,但仍面临了诸多挑战,其中包含最流行的基于不经意传输协议的隐私集合求交方案是限定对手模型是半诚实模型的前提下的安全求交协议。隐私集合求交技术作为基础应用技术,其性能仍有提升需求。目前的各种技术方案,缺少标准的对抗手段来证明其确实在实际应用中保护了数据安全。以及缺少基于隐私集合求交的各种标杆性应用。

隐私计算在金融,政务,运营商,营销商,科研机构等对自身数据极为敏感,且对 IT 智能化有强烈需求的行业和领域,有着重要的地位。对于隐私集合求交技术在实际行业应用上的实践,需要关注的主要为题有:

  1. 安全性。隐私计算为提升系统安全性而生,作为隐私计算底层关键性技术之一的隐私集合求交,需要在安全性方面提供令业界信服的能力和证明方式。这决定了隐私集合求交的核心技术,需要提供可信服的论文和理论依据,且通常为大众认可的开源代码。
  2. 权威认证。隐私计算对安全性要求极为敏感,除了在算法方面有可信理论依据之外,还需要对应的权威机构认证。这包括安全性认证的权威机构,模拟破坏性攻击防御能力的权威机构等。
  3. 主动防御能力。在基于智能分析或满足客户设定的阈值的前提下,如果在计算过程中,应用及时识别出通信的参与方可能包含恶意攻击,应能够及时停止计算并记录判定攻击的相关数据。
  4. 可解释性。可解释性是更好的主动观测计算过程和维护的能力。包含计算过程的可视化,通信数据抓取,事件审计能力等方案。
  5. 优异的性能。作为安全通信的底层技术,隐私集合求交需要提供相对优异的性能,以便应对海量数据处理以及实时数据分析的需求。这要求隐私集合求交算法的性能,应尽可能去逼近朴素哈希求交算法的性能。

隐私集合求交目前在国内已经有商业化应用落地,但仍缺少标志性的成功商业应用作为标杆,使得隐私计算的商业化进程在需求和质疑中缓步前行。在当前的市场背景下,如何保障今后的技术创新和应用能够在符合法律法规的前提下,安全高效地进行数据交互,将会是未来数据密集型系统的一个重要的支撑能力。对于持有大量敏感数据的传统企业来说,也急需一种可靠的技术,既能够利用数据创造价值,又能够保障持有者的数据的隐私安全。

参考文献

[1] M. Raab and A. Steger. “Balls into bins” - a simple and tight analysis. In Randomization and Approximation Techniques in Computer Science (RANDOM’98), volume 1518 of LNCS, pages 159–170. Springer, 1998.

[2] A. C. Yao. How to generate and exchange secrets. In Foundations of Computer Science (FOCS’86), pages 162–167. IEEE, 1986.

[3] M. Bellare, V. Hoang, and P. Rogaway. Foundations of garbled circuits. In Proceedings of the 2012 ACM Conference on Computer and Communications Security, CCS’12, pages 784–796, 2012.

[5] Chen H, Laine K, Rindal P. Fast private set intersection from homomorphic encryption[C] //Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security. 2017: 1243-1255.

[6] Meadows C. A more efficient cryptographic matchmaking protocol for use in the absence of a continuously available third party[C]//1986 IEEE Symposium on Security and Privacy. IEEE, 1986: 134-134.

[7] E. De Cristofaro, G. Tsudik, Practical private set intersection protocols with linear complexity, in: International Conference on Financial Cryptography and Data Security, Springer, 2010: pp. 143–159.

[8] B. Pinkas, T. Schneider, and M. Zohner. Faster private set intersection based on OT extension. In USENIX Security Sympo sium, pages 797–812. USENIX, 2014.

[9] V. Kolesnikov, R. Kumaresan, M. Rosulek, and N. Trieu. Efficient batched oblivious

PRF with applications to private set intersection. In ACM CCS 2016, pages 818–829,

Vienna, Austria, October 24–28, 2016. ACM Press. 7

[10] B. Pinkas, M. Rosulek, N. Trieu, and A. Yanai. SpOT-light: Lightweight private set

intersection from sparse OT extension. In CRYPTO 2019, Part III, LNCS 11694,

pages 401–431, Santa Barbara, CA, USA, August 18–22, 2019. Springer, Heidelberg,

Germany. 7

[11] 申立艳,陈小军,时金桥,胡兰兰。隐私保护集合交集计算技术研究综述 [J]. 计算机研究与发展,2017,54 (10):2153-2169.

[12] 黄翠婷,张帆,孙小超,等。隐私集合求交技术的理论与金融实践综述 [J]. 信息通信技术与政策,2021 (6):50-56. DOI:10.12267/j.issn.2096-5931.2021.06.006.

内容来源:京东云开发者社区 [https://www.jdcloud.com/]

隐私集合求交(PSI)协议研究综述的更多相关文章

  1. 一个好用的多方隐私求交算法库JasonCeng/MultipartyPSI-Pro

    Github链接传送:JasonCeng/MultipartyPSI-Pro 大家好,我是阿创,这是我的第29篇原创文章. 今天是一篇纯技术性文章,希望对工程狮们有所帮助. 向大家推荐一个我最近改造的 ...

  2. [java] 求2个集合的交 差 并集

    要求2个集合的交 差 并集. set集合,如下 import java.util.HashSet; import java.util.Set; public class SetTest { publi ...

  3. ray与triangle/quad求交二三事

    引擎中,ray与quad求交,算法未细看,但有求解二次方程,不解.ray与triangle求交,使用的是97年经典算法,仔细看过论文,多谢小武同学指点,用到了克拉默法则求解线性方程组.想模仿该方法,做 ...

  4. python集合set{ }、集合函数及集合的交、差、并

    通过大括号括起来,用逗号分隔元素,特点 1.由不同元素组成,如果定义时存在相同元素,处理时会自动去重 2.无序 3.元素只能是不可变类型,即数字.字符串.布尔和元组,但集合本身可变 4.可直接定义集合 ...

  5. hdu 5111 树上求交

    hdu 5111 树上求交(树链剖分 + 主席树) 题意: 给出两棵树,大小分别为\(n1\),\(n2\), 树上的结点权值为\(weight_i\) 同一棵树上的结点权值各不相同,不同树上的结点权 ...

  6. 一步一步实现基于GPU的pathtracer(二):求交算法

    不管是哪种全局光照算法,最根本的都要落实到光线与物体的求交.主要分为光线与参数曲面和非参数曲面的求交,典型的参数曲面有球.盒.圆柱等基本体及基本体的组合体,以及一些更为复杂的参数曲面.非参数曲面就是所 ...

  7. 《A Survey on Transfer Learning》迁移学习研究综述 翻译

    迁移学习研究综述 Sinno Jialin Pan and Qiang Yang,Fellow, IEEE 摘要:   在许多机器学习和数据挖掘算法中,一个重要的假设就是目前的训练数据和将来的训练数据 ...

  8. 线性基求交(2019牛客国庆集训派对day4)

    题意:https://ac.nowcoder.com/acm/contest/1109/C 问你有几个x满足A,B集合都能XOR出x. 思路: 就是线性基求交后,有几个基就是2^几次方. #defin ...

  9. [NetTopologySuite](2)任意多边形求交

    任意多边形求交: private void btnPolygon_Click(object sender, EventArgs e) { , , , , , , , , , , , , , }; , ...

  10. javascript集合求交集

    两集合求交集 思路: 1. 每一次从B数组中取一值,然后在A数组里逐个比较,如果有相等的,则保存.该算法复杂度为 O(MN). M, N 分别为数组 A B 的长度. 2. 因为A B 都排过序,所以 ...

随机推荐

  1. MindSpore:不用摘口罩也知道你是谁

    [本期推荐专题]从三大主流前端技术出发,看看它们各自特性,以及如何从业务特性出发,选择合适的框架. 摘要:我们基于MindSpore设计了一种人脸识别算法,以解决口罩遮挡场景下的人脸识别问题.该算法的 ...

  2. 什么是Python中的套接字编程?

    摘要:本文涵盖了有关使用Python进行套接字编程的所有领域.套接字可以帮助您建立这些连接,而Python无疑可以简化连接. 本文分享自华为云社区<从零开始学python | 什么是Python ...

  3. 8种桌面IDE CodeArts智能代码补全类型

    摘要:代码补全可以有效的提升开发效率.减少拼写错误和输入代码量.CodeArts 依赖于 codearts.smartassist-java-ls 插件实现代码补全功能. 本文分享自华为云社区< ...

  4. Axure 单键快捷键

    如果怕误操作,可以把它关闭

  5. 你正在调试XXX的发布版本,如果在启用 仅我的代码 的同时,使用通过编译器优化的发布版本

    仅我的代码"警告 你正在调试 XXX.dll 的发布版本.如果在启用"仅我的代码"的同时使用通过编译器优化的发布版本,调试体验会降级(例如,将不会命中断点) 停止调试禁用 ...

  6. ThreadPoolExecutor 介绍

    线程池能够带来3个好处: 降低资源消耗:通过重复利用已创建的线程降低线程创建和销毁造成的消耗:提高响应速度:当任务到达时,任务可以不需要等到线程创建就能立即执行:提高线程的可管理性:线程是稀缺资源,如 ...

  7. go build 跟 go run 的区别

    go build 和 go run 是 Go 语言中两个常用的命令,它们的主要区别在于编译和执行的过程. 1.go run go run 命令用于编译并运行 Go 程序.它将源代码直接编译成可执行文件 ...

  8. 阿里云视频云人脸生成领域最新研究成果入选CVPR2022

    CVPR(IEEE Conference on Computer Vision and Pattern Recognition)作为计算机视觉和模式识别领域的顶级会议,在全球具有极高的权威性.目前在中 ...

  9. GIL 锁或将在 CPython 中成为可选项

    哈喽大家好,我是咸鱼 几天前有媒体报道称,经过多次辩论,Python 指导委员会打算批准通过 PEP 703 提案,让 GIL(全局解释器)锁在 CPython 中成为一个可选项 PEP 703 提案 ...

  10. Spring Boot 2.x基础教程:使用LDAP来管理用户与组织数据

    很多时候,我们在做公司系统或产品时,都需要自己创建用户管理体系,这对于开发人员来说并不是什么难事,但是当我们需要维护多个不同系统并且相同用户跨系统使用的情况下,如果每个系统维护自己的用户信息,那么此时 ...