Add files via upload

This commit is contained in:
Bluzume 2020-02-13 23:06:09 +13:00 committed by GitHub
parent c8aa0bbbe8
commit 26f5bd6976
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 202 additions and 0 deletions

View File

@ -0,0 +1,97 @@
<?php
function check(string $code, $bitPos)
{
$checksum = 0;
intval($code[5]);
for($i=0; $i<strlen($code); $i++)
{
if($i == $bitPos)
{
continue;
}
$checksum += intval($code[$i]);
}
return $checksum % 10;
}
function verify_code(string $code)
{
$type = intval($code[5]);
$checkBit = 0;
$checkBitPos = 0;
switch($type)
{
case 0:
case 1:
$checkBitPos = 7;
break;
case 2:
case 3:
$checkBitPos = 7;
break;
case 4:
case 5:
$checkBitPos = 4;
break;
case 6:
case 7:
$checkBitPos = 11;
break;
case 8:
case 9:
$checkBitPos = 1;
break;
}
$checkBit = intval($code[$checkBitPos]);
$calcBit = check($code,$checkBitPos);
if($checkBit == $calcBit)
{
return true;
}
else
{
return false;
}
}
function fail()
{
print("mch=00");
exit();
}
//main process
header("Content-Type: www-form-urlencoded");
session_start();
if(!isset($_POST["tapa"]))
{
fail();
}
$loginCode = $_POST["tapa"];
if(strlen($loginCode) != 14)
{
fail();
}
$_SESSION["loginCode"] = $loginCode;
$isValid = verify_code($loginCode);
if($isValid)
{
print("mch=01&wrk=21&par=50&acd=6&npa=72&mde=1&xda=81&dte=68721579380456");
}
else
{
fail();
}
?>

View File

@ -0,0 +1,105 @@
<?php
function check(string $code, $bitPos)
{
$checksum = 0;
intval($code[5]);
for($i=0; $i<strlen($code); $i++)
{
if($i == $bitPos)
{
continue;
}
$checksum += intval($code[$i]);
}
return $checksum % 10;
}
function fail()
{
echo("tapa=00000000000000");
exit();
}
header("Content-Type: www-form-urlencoded");
session_start();
if(!isset($_SESSION["loginCode"]))
{
fail();
}
$code = $_SESSION["loginCode"];
if(isset($_POST["mde"]) and isset($_POST["npa"]))
{
$mode = strval($_POST["mde"]);
$id = strval($_POST["npa"]);
//input validaition:
if(strlen($id) > 3)
{
fail();
}
else if(strlen($mode) > 1)
{
fail();
}
// processing
while(strlen($id) < 3)
{
$id = "0".$id;
}
$type = intval($code[5]);
switch($type)
{
case 0:
case 1:
$code[8] = $mode;
$code[0] = $id[0];
$code[13] = $id[1];
$code[11] = $id[3];
$code[7] = check($code,7);
break;
case 2:
case 3:
$code[1] = $mode;
$code[2] = $id[0];
$code[8] = $id[1];
$code[13] = $id[2];
$code[7] = check($code,7);
break;
case 4:
case 5:
$code[10] = $mode;
$code[11] = $id[0];
$code[7] = $id[1];
$code[3] = $id[2];
$code[4] = check($code,4);
break;
case 6:
case 7:
$code[13] = $mode;
$code[12] = $id[0];
$code[2] = $id[1];
$code[1] = $id[2];
$code[11] = check($code,11);
break;
case 8:
case 9:
$code[10] = $mode;
$code[8] = $id[0];
$code[4] = $id[1];
$code[2] = $id[2];
$code[1] = check($code,1);
break;
}
echo("tapa=".$code);
}
?>