fwrite, байты безопасны - PullRequest
1 голос
/ 01 мая 2011

Я хочу отправить данные через POST на страницу php, мне нужно хранить байты в точности так, как они есть, но я не смог этого сделать.Когда я отправляю 138 байтов, fputs и fwrite возвращают 133.

$fh = fopen($myFile, 'ab') or die("can't open file");
echo fputs($fh, $_POST['data'] ,strlen($_POST['data']));
fclosw

VB.NET:

Dim ar As System.Text.UTF8Encoding = New System.Text.UTF8Encoding
Request.ContentLength = ar.GetByteCount(PostData)
ContentType = "application/x-www-form-urlencoded"
SW = New StreamWriter(Request.GetRequestStream(), ar)
SW.Write(PostData)

-edit - это функция шифрованных данных

Public Function Encrypt(ByVal stringToEncrypt As String, ByVal key As String) As String
    Rijndael.Key = SHA256.ComputeHash(ASCIIEncoding.ASCII.GetBytes(key))
    Rijndael.Mode = CipherMode.ECB
    Dim Buffer As Byte() = ASCIIEncoding.UTF8.GetBytes(stringToEncrypt)
    Return Convert.ToBase64String(Rijndael.CreateEncryptor().TransformFinalBlock(Buffer, 0,  Buffer.Length))
    End Function

РЕДАКТИРОВАННЫЙ пример, оригинальная зашифрованная строка:

j/aokbSUDP1nAD7KafnDoLSmI93sOLiroTwcQIUS/Xw8eUlUZA58OULXCtsnkKqOe+UXlFP6vKuTIWxVMRBZLiBiIOZomNsvoIfM4dv2UzAk2q5mpjo4/0E9lPvu4I7X

после отправки

j/aokbSUDP1nAD7KafnDoLSmI93sOLiroTwcQIUS/Xw8eUlUZA58OULXCtsnkKqOe UXlFP6vKuTIWxVMRBZLiBiIOZomNsvoIfM4dv2UzAk2q5mpjo4/0E9lPvu4I7X

1 Ответ

1 голос
/ 01 мая 2011

Не вижу причины, по которой это не сработает:

$connection = fopen($file, 'ab');
fwrite($connection, urldecode($_POST['data']));
fclose($connection);
...