[英]PHP Secure Hashing
所以我对PHP有一个小问题。 我认为我已经弄乱了foreach循环。 这是代码:
<?php
error_reporting(0);
class Hash{
public function hashing($password,$hashsum)
{
$iter = date('sh');
$poyl = array($iter,strrev($iter));
foreach ($poyl as $key) {
$itg = array('1','2','3','4','5'); # if == any array element
foreach($itg as $v){
if ($key == $v){ # has to be checked here
$algo = 'TIGER128,3';
} elseif ($key == rand(31,60)){
$algo = 'HAVAL128,4';
} # else
}
} # foreach
return hash($algo,$password.strtok($password,'7'));
}
}
$obj = new Hash();
print $obj->hashing('text',hash($algo,$password.strtok($password,'7')));
我在这里想要实现的目标是:应该是一个可以计算半多态哈希值的类。 为了使这种虚假的多态性起作用,我至少需要拥有两种不同的哈希算法。 ( 之后将考虑与数据库建立依赖关系和相关性 )。
所以我的问题是,我需要执行一项检查,以确定第一个字符(在这种情况下为整数)是否等于$ itg数组中的任何元素(或者是否等于1-30之间的任何数字)。 如果是这样,则算法将为TIGER128,3 ; 如果不是(并且date变量的第一个字符等于31-60之间的任何值),则应用的算法应为HAVAL128,4 。
代码完全搞砸了。 我使用date函数生成整数,然后将它们进行比较,因为我想不出任何快速的方法(意味着这会改变)。
如果您只想比较该数组中的内容,则可以使用in_array()
$array = array(1,2,3,4);
$str = '1abcdef';
in_array($str[0], $array) // Returns TRUE;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.