【发布时间】:2012-10-18 07:02:22
【问题描述】:
散列使用一种读取文件内部数据的方法,并从其数学上创建数字和字母。 C++ 中的数学方程是如何做到这一点的?
我正在尝试使用 C++ 和 Visual Studio 创建一个应用程序,该应用程序读取数据文件并从中获取 SHA-256 哈希和。然后应用一个等式将其更改为不同的数字和字母,但字符更少。这个处理过的数字和字母将用作 7zip 或 rar 文件的密码。 (不确定哪个更适合加密)
这是为了缓解互联网爬虫访问内容和不应该访问内容的人。我不希望它能够完全锁定一个人。
此外,它必须是可转码的。所以它必须能够从 Hash 到 pass,从 pass 到 hash,最好是。
如果有人能在这方面帮助我,我将不胜感激,我会在学分页面中为您提供一个位置,并提供指向您的个人资料的链接或任何您想要的链接:3。
如果您有任何其他问题或信息,请随时给我发消息。
图形用户界面图片:
【问题讨论】:
-
如果您从哈希中删除字节以创建密码,这是一种方式操作。
-
应该有一种方法我会想,如果不是我也不介意它是否是单向操作,我可以在此基础上进行构建。
-
好吧,缩短的哈希仍然是哈希,只是安全性较低。
-
计算一个 SHA256 摘要(32 个字节)并只保留其中的一部分(12 个字节),base64 编码为您的 16 字符“密码”将适用于单向。请记住,您剥离散列的每一点都会使巧合碰撞的可能性增加 2 的幂。无论 7zip 允许的最大密码长度如何,都可以使用它。每一点都很重要。我仅使用 12 字节作为示例,因为它可以很好地融合到 4/3 升迁到 asci。为了回答您的其他评论,没有散列的压缩(由于它们太短且分散,它们做得非常糟糕),您可以忘记双向性。
标签: c++ encryption hash