草庐IT

为什么用公钥加密却不能用公钥解密?

大家第一次接触HTTPS的时候是不是和我一样,非常困惑。这玩意概念又多又繁琐。尤其是里面的公钥私钥啥的。当时我就特别想知道,为什么用公钥加密却不能用公钥解密?看完这篇文章你会弄明白,同时还会解锁很多HTTPS里的细节知识点。今天,我们就先从对称加密和非对称加密聊起吧。对称加密和非对称加密小学上课的时候,都传过小纸条吧?传纸条的时候每个拿到纸条的同学都会忍不住看一眼,毫无隐私可言。假设班花想对我表白,又不想在传的过程中让别人发现她的情意绵绵。就会在课间十分钟里告诉我,"每个字母向左移动一位,就是我想对你说的话"。然后在上课的时候,递出纸条,上面写了 ebtibcj。每个帮助传递纸条的同学看了之后

TLS、SSL、CA 证书、公钥、私钥...今天捋一捋!

松哥最近在和小伙伴们连载gRPC,如何确保gRPC通信的安全性?这就涉及到TSL了,但是考虑到可能有小伙伴对加密连接这一整套方案比较陌生,因此我们今天先用一篇文章跟大家捋清楚这些概念,概念搞明白了,再来看TSL+gRPC就很容易了。1.HTTP的问题HTTP协议是超文本传输协议(HyperTextTransferProtocol)的缩写,它是从WEB服务器传输超文本标记语言HTML到本地浏览器的传送协议。HTTP设计之初是为了提供一种发布和接收HTML页面的方法,时至今日,它的作用已经不仅仅于此了。对于我们Java工程师而言,HTTP应该算是再熟悉不过的东西了,目前HTTP有多个版本,使用较多

TLS、SSL、CA 证书、公钥、私钥...今天捋一捋!

松哥最近在和小伙伴们连载gRPC,如何确保gRPC通信的安全性?这就涉及到TSL了,但是考虑到可能有小伙伴对加密连接这一整套方案比较陌生,因此我们今天先用一篇文章跟大家捋清楚这些概念,概念搞明白了,再来看TSL+gRPC就很容易了。1.HTTP的问题HTTP协议是超文本传输协议(HyperTextTransferProtocol)的缩写,它是从WEB服务器传输超文本标记语言HTML到本地浏览器的传送协议。HTTP设计之初是为了提供一种发布和接收HTML页面的方法,时至今日,它的作用已经不仅仅于此了。对于我们Java工程师而言,HTTP应该算是再熟悉不过的东西了,目前HTTP有多个版本,使用较多

关于 c : 用 OpenSSL API 比较两个公钥

ComparingtwopublickeyswithOpenSSLAPI我正在寻找一种方法来使用C中的OpenSSLAPI比较两个公钥。当然,最明显的方法是将两个密钥序列化为某种格式,如PEM或DER,然后只比较两个序列化的缓冲区。但我想知道是否有更有效的方法来比较直接使用内存中的OpenSSL密钥结构的两个密钥。显然,这样做可能需要不同的逻辑,具体取决于用于生成公钥(以及对应的私钥)的算法。所以,从简单的开始,假设我们最初只关心比较RSA密钥。由于RSA密钥的公共部分是模数n和公共指数e,看来我们可以尝试从每个密钥中获取这两个数字并直接比较它们。如果它们相等,我们可以说两个公钥相等。Open

关于 c : 用 OpenSSL API 比较两个公钥

ComparingtwopublickeyswithOpenSSLAPI我正在寻找一种方法来使用C中的OpenSSLAPI比较两个公钥。当然,最明显的方法是将两个密钥序列化为某种格式,如PEM或DER,然后只比较两个序列化的缓冲区。但我想知道是否有更有效的方法来比较直接使用内存中的OpenSSL密钥结构的两个密钥。显然,这样做可能需要不同的逻辑,具体取决于用于生成公钥(以及对应的私钥)的算法。所以,从简单的开始,假设我们最初只关心比较RSA密钥。由于RSA密钥的公共部分是模数n和公共指数e,看来我们可以尝试从每个密钥中获取这两个数字并直接比较它们。如果它们相等,我们可以说两个公钥相等。Open

关于 php:phpseclib Crypt_RSA:为什么要使用公钥进行解密?

phpseclibCrypt_RSA:Whyispublickeyusedfordecryption?我正在查看RSA加密的phpseclib手册,并注意到公钥用于解密数据和私钥用于加密。根据我的阅读和理解,公钥用于加密,私钥用于解密,因此为什么它是私有的,或者我遗漏了什么?例子123456789101112131415161718192021222324252627282930313233343536373839include('Crypt/RSA.php');$rsa=newCrypt_RSA();//extract($rsa->createKey());$plaintext='Hello

关于 php:phpseclib Crypt_RSA:为什么要使用公钥进行解密?

phpseclibCrypt_RSA:Whyispublickeyusedfordecryption?我正在查看RSA加密的phpseclib手册,并注意到公钥用于解密数据和私钥用于加密。根据我的阅读和理解,公钥用于加密,私钥用于解密,因此为什么它是私有的,或者我遗漏了什么?例子123456789101112131415161718192021222324252627282930313233343536373839include('Crypt/RSA.php');$rsa=newCrypt_RSA();//extract($rsa->createKey());$plaintext='Hello

查看本机 ssh 公钥,生成公钥

查看ssh公钥方法:1.通过命令窗口a.打开你的gitbash窗口b.进入.ssh目录:cd~/.sshc.找到id_rsa.pub文件:lsd.查看公钥:catid_rsa.pub或者vimid_rsa.pub如图:2.或者你也可以直接输入命令:cat~/.ssh/id_rsa.pub3.或者你也可以直接打开你用户(一般都是Administrator)下的.ssh文件夹,打开它里面的id_rsa.pub文件,如图:何谓公钥1.很多服务器都是需要认证的,ssh认证是其中的一种。在客户端生成公钥,把生成的公钥添加到服务器,你以后连接服务器就不用每次都输入用户名和密码了。2.很多git服务器都是用

查看本机 ssh 公钥,生成公钥

查看ssh公钥方法:1.通过命令窗口a.打开你的gitbash窗口b.进入.ssh目录:cd~/.sshc.找到id_rsa.pub文件:lsd.查看公钥:catid_rsa.pub或者vimid_rsa.pub如图:2.或者你也可以直接输入命令:cat~/.ssh/id_rsa.pub3.或者你也可以直接打开你用户(一般都是Administrator)下的.ssh文件夹,打开它里面的id_rsa.pub文件,如图:何谓公钥1.很多服务器都是需要认证的,ssh认证是其中的一种。在客户端生成公钥,把生成的公钥添加到服务器,你以后连接服务器就不用每次都输入用户名和密码了。2.很多git服务器都是用