37 条回复  ·  340 次点击
minottomie4383 小成 2024-9-21 11:26:28
很多,公私钥都是非对称加密用。
私钥签名,公钥验签。公钥加密,私钥解密。是因为通常公钥是公开的,私钥是个人的,而各个语言和工具也是按照这实现和提供调用的
私钥签名,公钥验证,例如三方 API 也可以用,像接支付宝接口,银行支付接口,你会看到他们也有用公私钥方案。平台会提供你他们的公钥用于验签他们的响应包,你也要提供你的公钥给平台用于验签你的请求。为的就是互相证明双方身份。
当你开发开放接口给别人调用,且只能给指定的调用方调用,不让别人随便调用,也可以上签名这一套,安全级别较高的就用公私钥。
vishun 小成 2024-9-21 14:12:16
没有对接过支付宝支付、微信支付这些吗?这里面就有。
wnpllrzodiac 小成 2024-9-21 14:48:51
图解密码技术
https://bkimg.cdn.bcebos.com/pic/80cb39dbb6fd526699ac8e84a718972bd507369e
可以看看这本书。浅显易懂。

非对称加密,主要解决的是密钥传输过程中被窃取的问题。
就是鸡和蛋的问题。怎么保证密钥的安全呢?密钥再加密?可是这个加密密钥的密钥怎么保证安全呢?
天才想出来一个法子,可以在明码传输密钥的情况下,也不会被破解。

核心就是一个大数怎么取模。找到另一个数。正常情况下,这个计算非常吃时间,就可以认为你就算有了公钥,也不可能计算出保密的私钥。
raviscioniemeche 小成 2024-9-21 15:44:37
第一个已经回答了 https 就是典型的场景》...
CodeAllen 小成 2024-9-21 17:18:41
并不是所有非对称加密算法都支持加解密数据,非对称加密算法的基本要求是签名-验签,确认签名数据的准确性,确定身份,加解密并不是核心要求,加解密数据那是对称加密算法的活儿,而且还有一点,非对称加密算法对同样的数据进行多次签名,得到的签名数据不保证完全一样,可能存在随机值参数,和具体算法实现有关系,只要能验证通过就行。
expy 小成 2024-9-21 18:16:39
https://archlinux.org/iso/2024.09.01/archlinux-2024.09.01-x86_64.iso.sig

系统镜像是常见场景,不过一般省事只验 sha 校验和。
james122333 初学 2024-9-21 21:38:05
其中一个答案是包管理器 用来验証下载下来的包是否正确 目前最常用场景
mark2025 小成 2024-9-21 22:28:55
ssh 也可能双向认证的: 即认证服务端,也认证客户端
neilp 小成 2024-9-21 22:39:29
现在的公钥私钥, 主要都是来签名的, 几乎不在直接加密了.
ssh 或者 ssl/tls 中, 都是用 dh/ecdh 来动态协商产生对称加密密钥.  最后,用公钥私钥来签名就好了.  因为对称的密钥不需要通过网络传输, 所以不存在加密的问题.
raw0xff 小成 2024-9-21 22:48:53
我记得有个开源项目 nostr 貌似可以做个例子。
大概是个去中心化的 twitter 微博,用户信息和数据存在第三方建立的节点上(relay),用户可选择在多个不同的 relay 上存储自己和订阅别人,用户 ID 就是公钥,用户明文发推,但私信用接收者公钥加密。relay 只需要无脑收发存储,不需要对用户做任何身份验证。
返回顶部