假设我在这个站点上使用算法来加密和解密具有公钥-私钥的数据:
CodeProject上的Public Key RSA Encryption in C# .NET
现在,假设某人使用我的公钥使用另一种算法加密了他的数据,并将其发送给我。使用不同的算法(就像网站上的算法),我能用我的私钥解密信息吗?或者这是不可能的,因为算法是不同的?
我的观点是,假设使用的密钥是正确的,如果使用不同的加密算法,最终结果是否总是相同的?
有没有一些标准的方法来加密信息,使其可以在不同的机器上解密,也许是不同的编程语言?
发布于 2013-04-28 17:54:33
有一些讨论正在进行,但这里是我回答这些问题的谦虚尝试:
使用不同的算法(就像网站上的算法),我能用我的私钥解密信息吗?或者这是不可能的,因为算法是不同的?
你肯定不会能够解密数据的。通常,您需要算法和密钥的完全匹配。然而,可以不同的是:用于加密/解密的平台、操作系统、硬件、语言或程序。这是因为算法充当具有定义良好的规范的公共契约,并且只要所有公共API呈现相同的结果,实现就可以不同。
我的观点是,假设使用的密钥是正确的,如果使用不同的加密算法,最终结果是否总是相同的?
几乎每次都会得到不同的结果(几乎是说,我只是不知道有任何这样的算法)。您需要完全匹配算法和必需的密钥。
有没有一些标准的方法来加密信息,使其可以在不同的机器上解密,也许是不同的编程语言?
是的,例如RSA,保护你的私钥的安全,并分享你的公钥。这是HTTPS首先要做的。每个拥有公钥的人都可以解密用私钥加密的数据。
或者,您可以使用AES,这是一种使用单个密钥进行加密/解密的对称算法。这是HTTPS要做的第二件事。如果您只在受信任的各方之间共享密钥,则两者都可以加密和解密(但其他人都不能,因为他们没有密钥)。
https://stackoverflow.com/questions/16261342
复制相似问题