密码学算法

时间:2020-03-05 18:57:41  来源:igfitidea点击:

我正在为我的应用程序制作一个简单的许可系统。

我不了解密码学,但是我知道我需要一个由2个密钥组成的算法:私有密钥和公共密钥。

我需要使用我的私钥加密一些数据(失效日期和客户电子邮件),然后我的应用程序将使用公钥解密数据以比较失效日期。

是否有我需要的已知算法?

编辑:问题解决了。在这里可以使用dsa的辅助类

解决方案

回答

签出RSA。大多数现代平台的标准库中都将包含RSA的实现。

回答

这根本不是私钥加密应该如何工作的方式。我们使用公共密钥加密数据,但只能使用私有密钥解密数据。

编辑:请忽略这个我是完全错误的。我会将它留给其他像我这样unk撞的人学习

回答

听起来我们需要图书馆!

我建议检查LibTomCrypt

回答

我们想要做的实际上在加密世界中称为"签名"。我们可以使用私钥加密某些东西,但是由于公钥是公开的,因此任何人都可以对其解密。执行此操作的算法称为"非对称密码"(因为加密密钥与解密密钥不同)。

通常,将计算数据的(加密安全性)哈希,并且仅对该哈希进行签名。这节省了加密整个消息的计算量,并使消息仍然可以用明文阅读,这可能很有用。

具体来说,RSA算法将以安全的方式完成我们想要的事情。

帮自己一个忙,不要试图自己去实现。而是采用OpenSSL库中的现有实现。它具有Apache样式的许可证,因此可能允许我们在应用程序中使用它。

(但是,请注意,这样的许可系统永远不会完全安全:有人仍然可以修改可执行文件并删除支票。但是显然,这比简单地修改注册表值要付出更多的努力。)