当前位置: 首页 > 知识库问答 >
问题:

需要对安全算法进行从md5到SHA-256 HMAC php的更改

翟冷勋
2023-03-14
if($type == "Credit Card") {
    unset($_POST["type"]);
    unset($_POST["order_id"]);
    $SECURE_SECRET = "MIGS_SS";  
    $vpcURL = $_POST["virtualPaymentClientURL"] . "?";  
    unset($_POST["SubButL"]);
    unset($_POST["virtualPaymentClientURL"]); 
    $md5HashData = $SECURE_SECRET;
    ksort ($_POST);
    $appendAmp = 0;

foreach($_POST as $key => $value) {
  if (strlen($value) > 0) {      
if ($appendAmp == 0) {
  $vpcURL .= urlencode($key) . '=' . urlencode($value);
  $appendAmp = 1;
  } else {
  $vpcURL .= '&' . urlencode($key) . "=" . urlencode($value);
}
  $md5HashData .= $value;
  }
}

if (strlen($SECURE_SECRET) > 0) {
  $vpcURL .= "&vpc_SecureHash=" . strtoupper(md5($md5HashData));
}

header("Location: ".$vpcURL);
} else {
header("Location: index.php?dz=eft&id=".$order_id."\n\n");
}
            foreach($_POST as $key => $value) {
         // create the hash input and URL leaving out any fields that have no  value
            if (strlen($value) > 0) {
        ?>
             <input type="hidden" name="<?php echo($key); ?>"  value="<?php    echo($value); ?>"/><br>
      <?php             
            if ((strlen($value) > 0) && ((substr($key, 0,4)=="vpc_") ||       (substr($key,0,5) =="user_"))) {
         $hashinput .= $key . "=" . $value . "&";
        }
        }

       }

       $hashinput = rtrim($hashinput, "&");
        ?>      
             <!-- attach SecureHash -->
             <input type="hidden" name="vpc_SecureHash"  value="<?php echo(strtoupper(hash_hmac('SHA256', $hashinput, pack('H*',$securesecret)))); ?>"/>
            <input type="hidden" name="vpc_SecureHashType" value="SHA256">

如果你能在我应该改变的地方写出正确的代码吗?

共有1个答案

闻人越
2023-03-14

你为什么要改变整个代码..

只需将MD5函数更改为SHA即可。

if (strlen($SECURE_SECRET) > 0) {
  $vpcURL .= "&vpc_SecureHash=" . strtoupper(md5($md5HashData));
}

if (strlen($SECURE_SECRET) > 0) {
  $vpcURL .= "&vpc_SecureHash=" . strtoupper(sha1($md5HashData));
}
 类似资料:
  • 我写了一个从java(javamail/jaf)发送简单邮件的代码。运行该程序后,我收到一封来自google的电子邮件,表明我的帐户正被不安全的设备/应用程序访问。然后我不得不更改我的gmail帐户的设置以允许登录“不太安全的应用程序”选项。然后我收到了来自程序的电子邮件。 我需要在不更改选项的情况下发送电子邮件,允许在我的帐户中使用“不太安全的应用程序”选项。请帮忙。 我的代码是:

  • 有没有办法将PostgreSQL密码加密方法从MD5更改为SHA? 如果是,你能告诉我怎么做吗? 我正在使用PostgreSQL 9.5

  • 我正在考虑将PostgreSQL密码加密从MD5更改为SHA的问题,以找出如何将Postgres中的用户密码哈希更改为MD5以外的内容,因为据我所知,它现在基本上已经过时了。 但我很好奇服务器的< code>pg_hpa.conf文件是否需要更改,因为根据本教程https://blog . big binary . com/2016/01/23/configure-PostgreSQL-to-al

  • 我正在研究一个已经用MD5(没有salt)散列用户密码的系统。我想使用SHA-512和SALT更安全地存储密码。 虽然这对于将来的密码来说很容易实现,但我也想修改现有的MD5散列密码,最好不强迫所有用户更改他们的密码。我的想法是只使用SHA-512和一个适当的salt来散列现有的MD5散列。然后,我可以在数据库中设置一些标志,指示哪些密码是从纯文本散列出来的,哪些密码是从MD5散列出来的。或者我可

  • 本文向大家介绍Android数据加密之SHA安全散列算法,包括了Android数据加密之SHA安全散列算法的使用技巧和注意事项,需要的朋友参考一下 前言: 对于SHA安全散列算法,以前没怎么使用过,仅仅是停留在听说过的阶段,今天在看图片缓存框架Glide源码时发现其缓存的Key采用的不是MD5加密算法,而是SHA-256加密算法,这才勾起了我的好奇心,所以趁着晚上没啥事,来学习一下。 其他几种加密

  • 代码: 产出:4 1 [代码连结][1] 前缀运算符的优先级高于逻辑运算符。2.逻辑<代码> 怀疑: > 为什么这里不遵循第一条规则?这不应该是正确的吗? 因此,在printf语句中,的值变为5。 为什么这里违反了一般的优先规则?当两个运算符的优先级相同时,关联性开始起作用。编译器不应该首先查看是计算还是