在当前的项目中,我想创建自己的哈希函数,但到目前为止还没有获得关于哈希原理的理论背景。
如果你们中的任何人能够就哈希函数的哈希,密码学和实际实现理论提出任何有用的资源,我将非常感激。
谢谢!
P.S。在这种情况下,由于信息的散列块是大型研究项目的一部分,我想自己创建一个哈希函数,这样学习原理而不是使用现有的库。我正在处理的信息将留在内部,因此无需担心可能的攻击。</ em>
答案 0 :(得分:8)
别。现有的加密和散列算法(如上面的评论中所指出的,彼此几乎没有关系)由专家设计并经过广泛的同行评审。你从头开始写的任何东西都会比较糟糕。保证。真。你唯一会得到的是虚假的安全感 - 你的算法不会经过同行评审,因此你会认为它比实际更安全。
但如果您确实想了解更多有关该理论的知识(并了解您不应该自己做的原因),请阅读Applied Cryptography的“Bruce Schneier”。你找不到更好的资源。
首先刷新你的数学。
答案 1 :(得分:3)
首先,如果您使用正确的术语,您将能够更好地找到有用的资源。
“加密”使用密码执行,而不是加密哈希函数。你永远不会找到一个可靠的引用,它将哈希称为“加密函数”。因此,如果您正在尝试了解哈希值,请保留“加密”。
“加密哈希”的另一个术语是“消息摘要”,因此在搜索时请记住这一点。
一本优秀书籍的许多章节应用密码学手册可在线免费获取。特别查看Chapter 9, "Hash Functions and Data Integrity."
答案 2 :(得分:0)
您是否考虑过使用库中的标准散列函数,然后对正在散列的数据进行盐化,而不是编写自己的散列函数?这是常见的做法,并确保任何拥有使用标准加密功能解密数据的软件的人都不会拦截您的数据并对其进行解密。
答案 3 :(得分:0)
与其他人一样,不要制作一种新的哈希值(代码会变得复杂,你也可能重新发明SHA1或MD5。)首先研究密码学。但是如果你愿意的话,看看现有的哈希(大多数是基于另一个)。或者您可以查看哈希模型。哈希模型如下所示:
或许可以从简单的东西开始并从中构建(制作安全哈希)。