123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- <?php
- /**
- * [WeEngine System] Copyright (c) 2014 WE7.CC
- * WeEngine is NOT a free software, it under the license terms, visited http://www.we7.cc/ for more details.
- */
- function Pin2PinBlock( &$sPin )
- {
- $iTemp = 1;
- $sPinLen = strlen($sPin);
- $sBuf = array();
- $sBuf[0]=intval($sPinLen, 10);
-
- if($sPinLen % 2 ==0)
- {
- for ($i=0; $i<$sPinLen;)
- {
- $tBuf = substr($sPin, $i, 2);
- $sBuf[$iTemp] = intval($tBuf, 16);
- unset($tBuf);
- if ($i == ($sPinLen - 2))
- {
- if ($iTemp < 7)
- {
- $t = 0;
- for ($t=($iTemp+1); $t<8; $t++)
- {
- $sBuf[$t] = 0xff;
- }
- }
- }
- $iTemp++;
- $i = $i + 2; }
- }
- else
- {
- for ($i=0; $i<$sPinLen;)
- {
- if ($i ==($sPinLen-1))
- {
- $mBuf = substr($sPin, $i, 1) . "f";
- $sBuf[$iTemp] = intval($mBuf, 16);
- unset($mBuf);
- if (($iTemp)<7)
- {
- $t = 0;
- for ($t=($iTemp+1); $t<8; $t++)
- {
- $sBuf[$t] = 0xff;
- }
- }
- }
- else
- {
- $tBuf = substr($sPin, $i, 2);
- $sBuf[$iTemp] = intval($tBuf, 16);
- unset($tBuf);
- }
- $iTemp++;
- $i = $i + 2;
- }
- }
- return $sBuf;
- }
-
- function FormatPan(&$sPan)
- {
- $iPanLen = strlen($sPan);
- $iTemp = $iPanLen - 13;
- $sBuf = array();
- $sBuf[0] = 0x00;
- $sBuf[1] = 0x00;
- for ($i=2; $i<8; $i++)
- {
- $tBuf = substr($sPan, $iTemp, 2);
- $sBuf[$i] = intval($tBuf, 16);
- $iTemp = $iTemp + 2;
- }
- return $sBuf;
- }
-
- function Pin2PinBlockWithCardNO(&$sPin, &$sCardNO)
- {
- global $log;
- $sPinBuf = Pin2PinBlock($sPin);
- $iCardLen = strlen($sCardNO);
- if ($iCardLen <= 10)
- {
- return (1);
- }
- elseif ($iCardLen==11){
- $sCardNO = "00" . $sCardNO;
- }
- elseif ($iCardLen==12){
- $sCardNO = "0" . $sCardNO;
- }
- $sPanBuf = FormatPan($sCardNO);
- $sBuf = array();
-
- for ($i=0; $i<8; $i++)
- {
- $sBuf[$i] = vsprintf("%c", ($sPinBuf[$i] ^ $sPanBuf[$i]));
- }
- unset($sPinBuf);
- unset($sPanBuf);
- $sOutput = implode("", $sBuf); return $sOutput;
- }
-
- ?>
|