在选择用于session哈希的正确算法时,大小是否重要。我最近读了这个article它建议使用漩涡池为sessionID创建哈希。Whirlpool生成一个128个字符的哈希字符串,这是否太大了?计划是将session哈希存储在数据库中。使用64个字符字段(sha256)、96个字符字段(sha384)或128个字符字段(whirlpool)之间有很大区别吗?最初为whirlpool提出的争论之一是速度与其他算法相比,但从速度结果来看sha384并不太公平。可以选择截断散列以使其小于128个字符。我确实修改了原始代码片段,以允许根据需要更改算法。更新:有一些关于字符串被散列的讨论,所以
我需要获取值数组的所有组合和排列。例如,请参见代码段:$a=array(1,2);$b=array('foo','bar');$params=array();$params[]=$a;$params[]=$b;//Whattodoto$paramssoIcangetthefollowingcombinations/permutations?//1,foo//2,foo//1,bar//2,bar//foo,1//bar,1//foo,2//bar,2请记住,$params可以是任意大小,其中的项目也可以是任意大小。 最佳答案 fun
非常重要的编辑:所有Ai都是独一无二的。问题我有一个Anunique对象列表。每个对象Ai都有一个可变百分比Pi。我想创建一个算法,生成k个对象的新列表B(kn/2并且在大多数情况下k明显小于n/2。例如n=231,k=21)。列表B不应有重复项,并将填充来自列表A的对象,但有以下限制:TheprobabilitythatanobjectAiappearsinBisPi.我尝试过的(这些snipits在PHP中只是为了测试目的)我首先列出了A$list=["A"=>2.5,"B"=>2.5,"C"=>2.5,"D"=>2.5,"E"=>2.5,"F"=>2.5,"G"=>2.5,"H"
我正在用PHP创建一个网络应用程序,人们可以在其中尝试翻译他们需要在学校学习的单词。例如,某人需要将荷兰语单词“weer”翻译成英语中的“weather”,但不幸的是他输入了“whether”。因为他差一点就打错了,我想再试一次,在他打错的地方打上点“.”:LanguageA:weerLanguageB:weatherInput:whetherOutput:w..ther或者,例如LanguageA:foutLanguageB:mistakeInput:mitakeOutput:mi.take或者:LanguageA:echtLanguageB:genuineInput:genuine
目前这个问题比编程更符合逻辑。一旦我理解了我需要使用的算法,我就会研究如何实现它。我有一个数据库中的项目列表,需要用户投票赞成或反对以确定它们是否正确。目的是为每个项目提供一个百分比,以显示项目信息的可靠性。有几个标准需要考虑..投票不是绝对的-每个用户的投票权重取决于他们的业力。用户业力应该根据他们的投票来计算-例如,如果用户提交了一个项目并且其他用户投票确认它是正确的,那么该用户的业力就会增加。如果用户以与其他具有高业力的用户投票相同的方向投票给项目,也可以给予业力。如果他们的投票方向与其他具有高业力的用户相反,他们的投票将被视为不正确,虽然这会降低该项目的分数,但也会降低他们的业
我不确定这是否可行,但有没有一种方法(预先编写的库或已知的科学检测方案)来分析几个文本句子并确定句子是否押韵?一位同事建议比较第一个词和最后一个词并使用词库,但我不太明白这将如何工作。高精度不是我的目标,即使是20%的精度也很棒,这是一个花哨的小Web应用程序想法我没有什么重要的只是认为它会很酷。我愿意尝试其他语言,甚至可能是Python,我听说它非常适合分析文本,但PHP更可取。 最佳答案 变音位http://www.php.net/manual/en/function.metaphone.php您可以将输入分类为语音(声音),然
我必须使用这种方式为URL缩短服务生成代码$code=substr(md5(uniqid(rand(),1)),3,5);但这总是生成固定长度的代码(在本例中为5)。万一数据库中有大量的URL受不了这里的五个符号怎么办?抱歉英语不好。 最佳答案 您将不得不存储URL,所以只需要一个表:网址:id,url其中id为自增序列,url列为索引。这样每个URL都是唯一的。最简单的方法是简单地使用ID,但您可以使用更短的ID。我的建议是将ID与基数62(10位数字、26个大写字母、26个小写字母=62)或可能为64(添加_和-)相互转换。我的
所以我有一个加权项目列表,我想从这个列表中挑选4个不重复的项目。ItemWeightApple5Banana7Cherry12...Orange8Pineapple50最有效的方法是什么?我最初的尝试是,如果已经选择的项目出现,则只为后续选择重新选择……但对于一个小列表,这可能会导致大量重新选择。编辑澄清:对于上面的例子,忽略水果D到N,总重量为82。所以首先被采摘的机会是:~6%B~8.5%C~14.6%O~9.8%P~61%一旦选择了一个项目,概率就会(应该!)改变。 最佳答案 在您的评论中,您说unique意味着:Idon't
假设我有常量3,5,6,9,10。我如何检测如何将输入的$n写为这些常量的总和且项数最少?例子$n=10,S=10$n=18,S=9+9$n=24,S=9+9+6$n=27,S=9+9+9$n=28,S=10+9+9谢谢 最佳答案 这是另一个Python解决方案,但希望您可以轻松转换为PHP(我会自己做,但我不是PHP专家-我相信您可以做得更好)。我尽量不使用任何高级的Python函数,以便非Python的读者更容易理解,但如果某些Python语法不清楚,请尽管提问。allowed=[3,5,6,9,10]n=28solutions
我需要将一个值与一组数组进行比较。但是,我需要比较foreach中的多个值。如果使用in_array,它可能会很慢,真的很慢。有没有更快的选择?我当前的代码是foreach($aas$b){in_array($b,$array);}谢谢。 最佳答案 你可以使用array_diff计算$a数组与$array之间的差异。这将为您提供不在$array或$a中的所有值。手册中的示例:$array1=array("a"=>"green","red","blue","red");$array2=array("b"=>"green","yello