C 对一本书的ISBN进行哈希运算

C 对一本书的ISBN进行哈希运算,c,hash,C,Hash,有什么好方法可以把一本书的ISBN进行散列? 对不起,让我澄清一下,我想把1000本书的ISBN进行散列。但阵列可能会增长。这是一个哈希表,不是加密。编程语言是c,但这是一个普遍问题。我想知道业界使用的ISBN标准哈希方法或您的建议 我怀疑ISBN是否有行业标准的哈希函数。行业标准涉及978前缀和其他前缀,以及ISBN如何分配给不同的发布者。在我自己的基于ISBN的应用程序中,我使用了一个用于字符串的bog标准哈希函数。我没有利用ISBN仅限于十进制数字(或者在校验位、十进制或X的情况下)这一事

有什么好方法可以把一本书的ISBN进行散列?
对不起,让我澄清一下,我想把1000本书的ISBN进行散列。但阵列可能会增长。这是一个哈希表,不是加密。编程语言是c,但这是一个普遍问题。我想知道业界使用的ISBN标准哈希方法或您的建议

我怀疑ISBN是否有行业标准的哈希函数。行业标准涉及978前缀和其他前缀,以及ISBN如何分配给不同的发布者。在我自己的基于ISBN的应用程序中,我使用了一个用于字符串的bog标准哈希函数。我没有利用ISBN仅限于十进制数字(或者在校验位、十进制或X的情况下)这一事实,我继续对校验位进行散列,即使它是多余的。散列一个10或13位数的字符串是如此之快,以至于做一些特殊情况的事情实际上可能会减慢速度


C程序员常用的散列函数包括Jenkins散列函数;还有谢长廷、托瑞克、苏法斯塔什和哈什。我相信还有其他人;你可以搜索它们。您还可以在上找到一个集合。

我怀疑ISBN是否有行业标准的哈希函数。行业标准涉及978前缀和其他前缀,以及ISBN如何分配给不同的发布者。在我自己的基于ISBN的应用程序中,我使用了一个用于字符串的bog标准哈希函数。我没有利用ISBN仅限于十进制数字(或者在校验位、十进制或X的情况下)这一事实,我继续对校验位进行散列,即使它是多余的。散列一个10或13位数的字符串是如此之快,以至于做一些特殊情况的事情实际上可能会减慢速度


C程序员常用的散列函数包括Jenkins散列函数;还有谢长廷、托瑞克、苏法斯塔什和哈什。我相信还有其他人;你可以搜索它们。您还可以在.

找到一个集合,它是什么类型的散列、加密(例如SHA1)还是散列表(Object.hashCode)?这是一个开放式集合,甚至无法回答。您期望的数据样本集是什么?尺寸?散列的目的?散列的好方法是使用好的散列算法。ISBN已经包含校验和。见第4.4节:。考虑到ISBN的规模,试图对其进行哈希运算几乎没有多大意义;撇开校验和不谈,它是9位十进制数字,一开始大约是32位。为什么对这个问题投反对票?由于ISBN是由特定的规则组成的,因此适用于随机字符串的“好的哈希算法”可能不是ISBN的最佳算法。例如,ISBN的最后一位是校验位,因此不应将其用作哈希的一部分。在设计算法时,语言和平台并不那么重要。重要的问题是:设置大小(你需要记录多少本书);这些是ISBN-10还是ISBN-13;您是否也计划跟踪其他印刷材料(ISSN)?什么样的哈希、加密(如SHA1)或哈希表(Object.hashCode)?这是一种开放式的方式,甚至无法回答。您期望的数据样本集是什么?尺寸?散列的目的?散列的好方法是使用好的散列算法。ISBN已经包含校验和。见第4.4节:。考虑到ISBN的规模,试图对其进行哈希运算几乎没有多大意义;撇开校验和不谈,它是9位十进制数字,一开始大约是32位。为什么对这个问题投反对票?由于ISBN是由特定的规则组成的,因此适用于随机字符串的“好的哈希算法”可能不是ISBN的最佳算法。例如,ISBN的最后一位是校验位,因此不应将其用作哈希的一部分。在设计算法时,语言和平台并不那么重要。重要的问题是:设置大小(你需要记录多少本书);这些是ISBN-10还是ISBN-13;您是否也计划跟踪其他印刷材料(ISSN)?1用于指出在如此琐碎的数据大小上,特定算法很少起作用。+1用于指出在如此琐碎的数据大小上,特定算法很少起作用。