这是我之前问题的延续:
Poor man serial number generation scheme
假设我已经生成了私钥/公钥对,但我想将私钥保存在已注册的应用程序本身中 - 例如通过生成仅包含数据(公钥和私钥部分)的 .c 代码。
当然这是有风险的解决方案 - 因为如果黑客从应用程序中提取私钥 - 他可以自己创建许可证。
但这是“穷人解决方案”,所以我希望所有内容都在一个应用程序中 - 私钥和公钥 - 所以注册表单也是序列号生成对话框。
所以我想将私钥放在应用程序中,但要用一些只有我知道的密码来保护它。
因此,通过输入序列号 - 第一步我们尝试匹配特定硬件(验证签名),但如果不成功,我们尝试检查最终用户是否为“管理员”(或序列号生成人) ).
什么是最好的双向加密算法,它将使用密码作为输入并且可以容忍暴力攻击?
我想“管理员密码”应该足够可靠,不容易被猜到(没有在任何著名的暴力黑客词典中列出)。
此外,最好将密码存储在注册表中/或至少以加密形式存储。 password === sha-1 hash ===> 20 bytes hash 可能有意义 - 将其存储在注册表中(“管理员密码”),然后使用 hash 加密私钥。
与上一个问题相同的问题 - 作为基础,我更愿意使用纯 C 或 C++(不是 C#),最好是 Windows/wincrypt.h 或任何现有的纯 C 源代码(最好不是庞大的第 3 方库)。
最佳答案
在此发布对此的回答:
Poor man serial number generation scheme
在我自己的原型(prototype)中,我使用 RC4 流加密算法进行双向加密。
可靠吗?有人可以破解吗?!
关于c - 穷人序列号生成方案,第2部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35630096/