密码学算法
时间:2020-03-05 18:57:41 来源:igfitidea点击:
我正在为我的应用程序制作一个简单的许可系统。
我不了解密码学,但是我知道我需要一个由2个密钥组成的算法:私有密钥和公共密钥。
我需要使用我的私钥加密一些数据(失效日期和客户电子邮件),然后我的应用程序将使用公钥解密数据以比较失效日期。
是否有我需要的已知算法?
编辑:问题解决了。在这里可以使用dsa的辅助类
解决方案
回答
签出RSA。大多数现代平台的标准库中都将包含RSA的实现。
回答
这根本不是私钥加密应该如何工作的方式。我们使用公共密钥加密数据,但只能使用私有密钥解密数据。
编辑:请忽略这个我是完全错误的。我会将它留给其他像我这样unk撞的人学习
回答
听起来我们需要图书馆!
我建议检查LibTomCrypt
回答
我们想要做的实际上在加密世界中称为"签名"。我们可以使用私钥加密某些东西,但是由于公钥是公开的,因此任何人都可以对其解密。执行此操作的算法称为"非对称密码"(因为加密密钥与解密密钥不同)。
通常,将计算数据的(加密安全性)哈希,并且仅对该哈希进行签名。这节省了加密整个消息的计算量,并使消息仍然可以用明文阅读,这可能很有用。
具体来说,RSA算法将以安全的方式完成我们想要的事情。
帮自己一个忙,不要试图自己去实现。而是采用OpenSSL库中的现有实现。它具有Apache样式的许可证,因此可能允许我们在应用程序中使用它。
(但是,请注意,这样的许可系统永远不会完全安全:有人仍然可以修改可执行文件并删除支票。但是显然,这比简单地修改注册表值要付出更多的努力。)