非对称加密和解密

我们假设我使用此站点上的算法使用公钥 – 私钥加密和解密数据:

CodeProject上C#.NET中的公钥RSA加密

现在,让我们说有人使用我的公钥使用另一种算法加密他的数据并将其发送给我。 使用不同的算法(如网站上的算法),我能够使用我的私钥解密信息吗? 或者这是不可能的,因为算法不同?

我的观点是,假设使用的密钥是正确的,如果使用不同的加密算法,最终结果是否总是相同的?

是否有一些标准的方法来加密信息,使其可以在不同的机器上解密,也许是不同的编程语言?

一些讨论,但这是我谦虚的尝试回答问题:

使用不同的算法(如网站上的算法),我能够使用我的私钥解密信息吗? 或者这是不可能的,因为算法不同?

你肯定无法解密数据。 通常,您需要完全匹配算法和密钥。 然而,可能有什么不同:平台,操作系统,硬件,语言或用于加密/解密的程序。 这是因为算法充当具有明确定义的规范的公共合同,并且只要所有公共API呈现相同的结果,实现可以是不同的。

我的观点是,假设使用的密钥是正确的,如果使用不同的加密算法,最终结果是否总是相同的?

几乎每次这些都会有不同的结果(说得差不多,我只是不知道任何这样的算法)。 您需要完全匹配算法和所需的密钥。

是否有一些标准的方法来加密信息,使其可以在不同的机器上解密,也许是不同的编程语言?

是RSA,例如,保持您的私钥安全并共享您的公钥。 这就是HTTPS首先做的事情。 拥有公钥的每个人都可以解密使用私钥加密的数据。

或者,您可以使用AES,一种带有单个密钥的对称算法来加密/解密。 这就是HTTPS的第二个function。 鉴于您只在受信任方之间共享密钥,两者都可以加密和解密(但没有其他人可以,因为他们没有密钥)。