SOLR uniqueKey与solr.UUIDField(SOLR uniqueKey with solr.UUIDField)
尝试使用solr.UUIDField生成uniqueKey字段。
<fieldType name="uuid" class="solr.UUIDField" indexed="true" /> <field name="uid" type="uuid" indexed="true" stored="true" default="NEW" /> <uniqueKey>uid</uniqueKey>
但由于某种原因,它不起作用。
错误信息:
{msg =由于init失败,SolrCore'db'不可用:uniqueKey字段(null)不能配置默认值(NEW)。 模式文件是。\ example-DIH \ solr \ db \ schema.xml,trace = org.apache.solr.common.SolrException:由于init失败,SolrCore'db'不可用:无法配置uniqueKey字段(null)使用默认值(NEW)。 架构文件是org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter)中的org.apache.solr.core.CoreContainer.getCore(CoreContainer.java:818)中的。\ example-DIH \ solr \ db \ schema.xml。在org.eclipse.jetty的org.eclipse.jet中的org.eclipse.jetty.servlet.ServletHandler $ CachedChain.doFilter(ServletHandler.java:1419)的org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:197)中的java:289) .glet.ServletHandler.doHandle(ServletHandler.java:455)org.eclipse.jetty.handle.ScopedHandler.handle(ScopedHandler.java:137)org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java) :557)org.eclipse.jet.server.session.SessionHandler.doHandle(SessionHandler.java:231)位于org.eclipse的org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)。在org.eclipse.jetty.server.hand.ContextHandler.do的org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)的jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) 在org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)的org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)的范围(ContextHandler.java:1009) org.eclipse.jetty.handle上的org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)或者org.eclipse.jetty.server上的org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) .Server.handle(Server.java:368)org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)at at Org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:942)位于org.eclipse.jetty.Attp.HttpParser的org.eclipse.jetty.server.AbstractHttpConnection $ RequestHandler.headerComplete(AbstractHttpConnection.java:1004)。 parseNext(HttpParser.java:640)在org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)at at Org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)位于org.eclipse.jet.ule上的org.eclipse.jetty.server.bio.SocketConnector $ ConnectorEndPoint.run(SocketConnector.java:264)。 thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)at org.eclipse.jetty.util.thread.QueuedThreadPool $ 3.run(QueuedThreadPool.java:543)at java.lang.Thread.run(Unknown Source)引起:org .apache.solr.common.SolrException:uniqueKey字段(null)不能配置默认值(NEW)。 架构文件位于org.apache.solr.schema.IndexSchema的org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:608)中的。\ example-DIH \ solr \ db \ schema.xml。(IndexSchema.java :166)org.apache.solr.schema.IndexSchemaFactory.create(IndexSchemaFactory.java:55)atg.apache.solr.schema.IndexSchemaFactory.buildIndexSchema(IndexSchemaFactory.java:69)org.apache.solr.core。 CoreContainer.createFromLocal(CoreContainer.java:554)位于org.apache.solr.core.CoreContainer.create(CoreContainer.java:592)org.apache.solr.core.CoreContainer $ 1.call(CoreContainer.java:271)at at org.apache.solr.core.CoreContainer $ 1.call(CoreContainer.java:263)at java.util.concurrent.FutureTask $ Sync.innerRun(Unknown Source)at java.util.concurrent.FutureTask.run(Unknown Source)at at java.util.concurrent.Executors java.util.concurrent.FutureTask上的$ RunnableAdapter.call(未知来源)$ java.util中java.util.concurrent.FutureTask.run(未知来源)的$ Sync.innerRun(未知来源)。 concurrent.ThreadPoolExecutor $ Worker.runT 在java.util.concurrent.ThreadPoolExecutor上询问(未知来源)$ Worker.run(未知来源)... 1更多引起:org.apache.solr.common.SolrException:uniqueKey field(null)无法配置org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:536)的默认值(NEW)
更新:
在我做出了leoh在答案中建议的更改后,我收到了以下错误消息:
我也忘了提到它在使用dataimporthandler时我收到了错误信息。
{msg=SolrCore 'db' is not available due to init failure: Error initializing QueryElevationComponent.,trace=org.apache.solr.common.SolrException: SolrCore 'db' is not available due to init failure: Error initializing QueryElevationComponent. at org.apache.solr.core.CoreContainer.getCore(CoreContainer.java:818) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:289) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:197) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) at org.eclipse.jetty.server.Server.handle(Server.java:368) at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53) at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:942) at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1004) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72) at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) at java.lang.Thread.run(Unknown Source) Caused by: org.apache.solr.common.SolrException: Error initializing QueryElevationComponent. at org.apache.solr.core.SolrCore.<init>(SolrCore.java:834) at org.apache.solr.core.SolrCore.<init>(SolrCore.java:625) at org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer.java:557) at org.apache.solr.core.CoreContainer.create(CoreContainer.java:592) at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:271) at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:263) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ... 1 more Caused by: org.apache.solr.common.SolrException: Error initializing QueryElevationComponent. at org.apache.solr.handler.component.QueryElevationComponent.inform(QueryElevationComponent.java:242) at org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:631) at org.apache.solr.core.SolrCore.<init>(SolrCore.java:829) ... 13 more Caused by: org.apache.solr.common.SolrException: Invalid UUID String: '1' at org.apache.solr.schema.UUIDField.toInternal(UUIDField.java:89) at org.apache.solr.schema.FieldType.readableToIndexed(FieldType.java:391) at org.apache.solr.handler.component.QueryElevationComponent$ElevationObj.<init>(QueryElevationComponent.java:138) at org.apache.solr.handler.component.QueryElevationComponent.loadElevationMap(QueryElevationComponent.java:311) at org.apache.solr.handler.component.QueryElevationComponent.inform(QueryElevationComponent.java:225)
我试图删除以下但没有任何索引:
<searchComponent name="elevator" class="org.apache.solr.handler.component.QueryElevationComponent" > <!-- pick a fieldType to analyze queries --> <str name="queryFieldType">string</str> <str name="config-file">elevate.xml</str> </searchComponent>
Trying to use solr.UUIDField to generate a uniqueKey field.
<fieldType name="uuid" class="solr.UUIDField" indexed="true" /> <field name="uid" type="uuid" indexed="true" stored="true" default="NEW" /> <uniqueKey>uid</uniqueKey>
But for some reason its not working.
Error message:
{msg=SolrCore 'db' is not available due to init failure: uniqueKey field (null) can not be configured with a default value (NEW). Schema file is .\example-DIH\solr\db\schema.xml,trace=org.apache.solr.common.SolrException: SolrCore 'db' is not available due to init failure: uniqueKey field (null) can not be configured with a default value (NEW). Schema file is .\example-DIH\solr\db\schema.xml at org.apache.solr.core.CoreContainer.getCore(CoreContainer.java:818) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:289) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:197) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) at org.eclipse.jetty.server.Server.handle(Server.java:368) at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53) at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:942) at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1004) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72) at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) at java.lang.Thread.run(Unknown Source) Caused by: org.apache.solr.common.SolrException: uniqueKey field (null) can not be configured with a default value (NEW). Schema file is .\example-DIH\solr\db\schema.xml at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:608) at org.apache.solr.schema.IndexSchema.(IndexSchema.java:166) at org.apache.solr.schema.IndexSchemaFactory.create(IndexSchemaFactory.java:55) at org.apache.solr.schema.IndexSchemaFactory.buildIndexSchema(IndexSchemaFactory.java:69) at org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer.java:554) at org.apache.solr.core.CoreContainer.create(CoreContainer.java:592) at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:271) at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:263) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ... 1 more Caused by: org.apache.solr.common.SolrException: uniqueKey field (null) can not be configured with a default value (NEW) at org.apache.solr.schema.IndexSchema.readSchema(IndexSchema.java:536)
UPDATE:
After i made the Changes that leoh suggested in the answer bellow i recieved following error message:
I also forgot to mention that its when using dataimporthandler i recieve the error messages.
{msg=SolrCore 'db' is not available due to init failure: Error initializing QueryElevationComponent.,trace=org.apache.solr.common.SolrException: SolrCore 'db' is not available due to init failure: Error initializing QueryElevationComponent. at org.apache.solr.core.CoreContainer.getCore(CoreContainer.java:818) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:289) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:197) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) at org.eclipse.jetty.server.Server.handle(Server.java:368) at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489) at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53) at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:942) at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1004) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72) at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) at java.lang.Thread.run(Unknown Source) Caused by: org.apache.solr.common.SolrException: Error initializing QueryElevationComponent. at org.apache.solr.core.SolrCore.<init>(SolrCore.java:834) at org.apache.solr.core.SolrCore.<init>(SolrCore.java:625) at org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer.java:557) at org.apache.solr.core.CoreContainer.create(CoreContainer.java:592) at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:271) at org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:263) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ... 1 more Caused by: org.apache.solr.common.SolrException: Error initializing QueryElevationComponent. at org.apache.solr.handler.component.QueryElevationComponent.inform(QueryElevationComponent.java:242) at org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:631) at org.apache.solr.core.SolrCore.<init>(SolrCore.java:829) ... 13 more Caused by: org.apache.solr.common.SolrException: Invalid UUID String: '1' at org.apache.solr.schema.UUIDField.toInternal(UUIDField.java:89) at org.apache.solr.schema.FieldType.readableToIndexed(FieldType.java:391) at org.apache.solr.handler.component.QueryElevationComponent$ElevationObj.<init>(QueryElevationComponent.java:138) at org.apache.solr.handler.component.QueryElevationComponent.loadElevationMap(QueryElevationComponent.java:311) at org.apache.solr.handler.component.QueryElevationComponent.inform(QueryElevationComponent.java:225)
I tried to remove following but then nothing is indexed:
<searchComponent name="elevator" class="org.apache.solr.handler.component.QueryElevationComponent" > <!-- pick a fieldType to analyze queries --> <str name="queryFieldType">string</str> <str name="config-file">elevate.xml</str> </searchComponent>
原文:https://stackoverflow.com/questions/21736564
最满意答案
即将推出的SHAKE256 (或SHAKE128的安全级别为128位而不是256位),这就是所谓的可扩展输出功能 (XOF),正是您所期待的。 它将与SHA3一起定义。 网上已有草稿 。
如果您现在需要一个已建立的解决方案,请遵循CodesInChaos建议并截断SHA512(如果最大为64byte就足够了),否则将流密码与原始数据的散列输出结合起来。
技术免责声明:在输出长度为512位后,“抵御重复安全性”(碰撞阻力)不再随着输出的增加而增加,与SHAKE256一样,它已经达到了原始支持的最大安全级别(即256位)。 (请注意,由于生日悖论,输出长度为n位的理想散列函数对冲突的安全级别仅为n / 2位。)无论如何,任何更高的安全级别都没有多大意义(可能是256位已经是一种矫枉过正)我们的太阳系不能提供足够的能量,甚至可以从0到2 ^ 256计数。
请不要将“安全级别”与密钥长度相混淆:对于对称算法,人们通常希望安全级别等于密钥大小,但使用非对称算法时,数字完全不相关:512位RSA加密方案的安全性远低于128位AES (即512比特的RSA模数已经可以通过强力计算)。
如果密码原语试图达到“n比特的安全级别”,这意味着应该没有比2 ^ n操作快的攻击。
The upcoming SHAKE256 (or SHAKE128 for a security level of 128bit instead of 256bit), a so called extendable-output function (XOF), is exactly what you are looking for. It will be defined alongside with SHA3. There is already a draft online.
If you need an established solution now, follow CodesInChaos advice and truncate SHA512 if a maximum of 64byte is enough and otherwise seed a stream cipher with the output of a hash of the original data.
Technical disclaimer: After an output length of 512bit the "security against duplicates" (collision resistance) does not increase any more with longer output, as with SHAKE256 it has reached the maximum security level against collisions the primitive supports (256bit). (Note that because of the birthday paradox the security level of an ideal hash function with output length of n bit against collisions is only n/2 bit.) Any higher security level is pretty much meaningless anyway (probably 256bit is already an overkill) given that our solar system does not provide enough energy to even count from 0 to 2^256.
Please do not confuse "security levels" with key lengths: With symmetric algorithms one usually expects a security level equal to the key size, but with asymmetric algorithms the numbers are completely unrelated: A 512 bit RSA encryption scheme is far less secure than 128bit AES (i.e. 512bit RSA moduli can be factored by brute force already).
If a cryptographic primitive tries to achieve a "security level of n bits" it means that there are supposed to be no attacks against it that is faster than 2^n operations.
相关问答
更多-
TCP/IP模型是一个________。[2023-05-19]
a -
什么哈希函数更好?(What hash function is better?)[2022-03-09]
使用% capacity的主要问题是它可以返回负值和正值。 HashMap通过使用2的幂来避免此问题,并使用以下方法 public int getIndex(K key) { return hash(key.hashCode()) & (capacity-1); } 如果容量不是2的幂,你可以忽略高位(通常不是那么随机) public int getIndex(K key) { return (hash(key.hashCode()) & 0x7FFFFFFF) % capacity; } 实际使用 ... -
下列中不属于面向对象的编程语言的是?[2022-05-30]
a -
哈希函数确定(Hash Function Determination)[2023-12-20]
你可能想看看完美的哈希。 You might want to look into perfect hashing. -
什么是好的哈希函数?(What is a good Hash Function?)[2022-03-22]
对于基本上任何类型的数据进行“正常”哈希表查找 - Paul Hsieh是我曾经使用过的最好的数据。 http://www.azillionmonkeys.com/qed/hash.html 如果您关心密码安全或其他更先进的内容,那么YMMV。 如果你只是想要一个屁股通用哈希函数来进行散列表查找,那么这就是你要找的东西。 For doing "normal" hash table lookups on basically any kind of data - this one by Paul Hsieh i ... -
或者,sha1的20字节是否足够满足任何需求,我应该不再担心它了? 究竟。 哈希表,Pigeonholes和生日 http://www.codinghorror.com/blog/archives/001014.html Or, is sha1's 20-byte has good enough for anything and I should stop worrying about it? Exactly. Hashtables, Pigeonholes, and Birthdays http://ww ...
-
这可以通过Hash :: merge完成 $formattedArray = Hash::merge($array[0], $array[1]); This can be done with Hash::merge $formattedArray = Hash::merge($array[0], $array[1]);
-
即将推出的SHAKE256 (或SHAKE128的安全级别为128位而不是256位),这就是所谓的可扩展输出功能 (XOF),正是您所期待的。 它将与SHA3一起定义。 网上已有草稿 。 如果您现在需要一个已建立的解决方案,请遵循CodesInChaos建议并截断SHA512(如果最大为64byte就足够了),否则将流密码与原始数据的散列输出结合起来。 技术免责声明:在输出长度为512位后,“抵御重复安全性”(碰撞阻力)不再随着输出的增加而增加,与SHAKE256一样,它已经达到了原始支持的最大安全级别(即 ...
-
给定输入a,b,c和d,每个输入的取值范围为0到30(5比特),下面将生成一个范围在0到255(8比特)的数字。 bucket = ((a & 0x18) << 3) | ((b & 0x18) << 1) | ((c & 0x18) >> 1) | ((d & 0x18) >> 3) 一般方法是否合适取决于问题的解释方式。 3个最低有效位被丢弃,在同一组中分组0-7,下一个8-15,等等。 0-7,0-7,0-7,0-7 -> bucket 0 0-7,0-7,0-7,8-15 -> bucket 1 ...
-
不,Boost没有实现MD5。 为此使用加密/哈希库。 CryptoC ++在我的经验中很不错。 OpenSSL实现了所有流行的摘要,这是一个使用OpenSSL的示例: 住在科利鲁 #include
#include #include // Print the MD5 sum as hex-digits. void print_md5_sum(unsigned char* md) { for(unsigned i=0; i ...