关于nets的传输加密,尼玛坑爹啊,什么东西都不给。
<?php
$fp = fsockopen("203.116.93.163", 80, $errno, $errstr, 30);
if (!$fp)
{
echo 'Could not open connection.';
}
else
{
$time = time();
$mid = '116';
$mKey = 'wFmLP5OF5xUZivXCXqgnL0Rl4C78vVkn';
$ref = $mid.$time;
$card_number = '0004500100000000014';
//generate random
$initial_random = bin2hex(openssl_random_pseudo_bytes(8));
echo 'Initial Random : '.$initial_random.'<br>';
//======================================================================
//Encrypted
//======================================================================
//encrypt by merchant's private key
$fp=fopen("D:/wamp/www/key/icol_priv_key.pem","r");
$priv_key=fread($fp,8192);
fclose($fp);
$res = openssl_get_privatekey($priv_key,'icolumn1014');
//private encrypt
openssl_private_encrypt($initial_random,$crypttext_ico_priv,$res);
$cry_len = strlen($crypttext_ico_priv);
$num = ceil($cry_len/100);
//Block encrypted
$fp=fopen("D:/wamp/www/key/icol_public.cert","r");
$pub_key=fread($fp,8192);
fclose($fp);
openssl_get_publickey($pub_key);
$encrypt_val = '';
$new_encrypt_val = '';
for($i=0; $i<$num; $i++)
{
$encrypt_val = substr($crypttext_ico_priv, $i*100, 100 );
openssl_public_encrypt($encrypt_val, $pub_encrypt, $pub_key);
$new_encrypt_val.=$pub_encrypt;
}
$full_enctypt_str = $new_encrypt_val;
//======================================================================
//Decrypted
//======================================================================
$len = strlen($full_enctypt_str);
$f_num = ceil($len/256);
$full_pri_decrypt = '';
for($j=0; $j<$f_num; $j++)
{
$block = substr($full_enctypt_str, $j*256, 256 );
openssl_private_decrypt($block,$block_decrypt,$res);
$full_pri_decrypt .= $block_decrypt;
}
openssl_public_decrypt($full_pri_decrypt,$original_data,$pub_key);
echo 'Original Data : '.$original_data;
}
?>