日期:2014-05-17  浏览次数:20922 次

如何php代码转化为C#代码?
各位大神,小弟入行的月数可以用一个指头算出来,主要熟悉PHP,经验尚浅。 前不久利用DES加密代码写了一个类。现在,出于需求,我需要在短期内把这个类在.net平台上用C#重新写出来。我对.net以及C#毫无所知(当然知道有这么一个东西),请问大神们有什么办法可以把php无差错的转化为C#代码呢?

请大神们救救急,赐教工具、方法甚至代码。感激涕零。这里问问题,好像最多是100分,我就全加上。
下面是php代码:


<?php
require_once ("../basic/db_site.php");

class DES_Class
{
const ConstantKey = 'MMM';
const ConstantIV = 'UUU';

private $key = "";   
private $iv = "";   

function __construct ()     
{

$this->key = $this->stringArrKey(base64_encode(self::ConstantKey));

$this->iv = $this->stringArrIv(self::ConstantIV);                //$this->stringArrIv($iv);

}

private function stringArrKey($inputStr)
{

$stringArray[]=array(); 

$inputStr=ltrim($inputStr);

$inputStr=rtrim($inputStr);

$stringArray=str_split($inputStr);  

$strLength=strlen($inputStr);   
$strOutput[]=array();   

if ($strLength<8)
{

for ($i=0;$i<$strLength;$i++)
{
$strOutput[$i]=$stringArray[$i];

}

for ($i=$strLength;$i<8;$i++)
{
$strOutput[$i]='0';         
}

}
else if ($strLength>8)
{
for ($i=0;$i<8;$i++)
{
$strOutput[$i]=$stringArray[$i];   
}
}

$strOutputFinal=implode("",$strOutput); 

return $strOutputFinal;

}




public function CreateLic($message)
{

$messageArr[] = array();

$messageReplace[] = array();

$messageArr=str_split($message);

for ($i=0;$i<5;$i++)
{
$messageReplace[$i] = $messageArr[5+$i];
}

for ($i=0;$i<5;$i++)
{
$messageReplace[5+$i] = $messageArr[$i];

}
$messageReplace[10] = $messageArr[10];

for ($i=0;$i<5;$i++)
{
$messageReplace[11+$i] = $messageArr[16+$i];

}

for ($i=0;$i<5;$i++)
{
$messageReplace[16+$i] = $messageArr[11+$i];

}

$message=implode("",$messageReplace);


$td = mcrypt_module_open(MCRYPT_3DES, '', MCRYPT_MODE_CBC, '');

$iv = base64_decode($this->iv);

$message = $this->PaddingPKCS7($message);

$key = base64_decode($this->key);

mcrypt_generic_init($td, $key, $iv);

$result  = base64_encode(mcrypt_generic($td, $message));

mcrypt_generic_deinit($td);

mcrypt_module_close($td);

return $result;
}


/***decode part-------public function*/
public function GetMessage ($license)
{

$td = mcrypt_module_open(MCRYPT_3DES, '', MCRYPT_MODE_CBC, '');

$iv = base64_decode($this->iv);

$key = base64_decode($this->key);

mcrypt_generic_init($td, $key, $iv);

$resul