• VLMI - форум по обмену информацией. На форуме можете найти способы заработка, разнообразную информацию по интернет-безопасности, обмен знаниями, курсы/сливы.

    После регистрации будут доступны основные разделы.

    Контент форума создают пользователи, администрация за действия пользователей не несёт ответственности, отказ от ответственности. Так же перед использованием форума необходимо ознакомиться с правилами ресурса. Продолжая использовать ресурс вы соглашаетесь с правилами.
  • Подпишись на наш канал в Telegram для информации о актуальных зеркалах форума: https://t.me/vlmiclub

PHP Private Notes class

BotHub

Разработчик ботов

BotHub

Разработчик ботов
Резидент
Сообщения
285
Реакции
420
0 руб.
Telegram
Добрый вечер друзья. Есть такой проект Private Notes с помощью которого можно создавать одноразовые записки, которые удаляются после их прочтения. На днях скинули мне ссылку на один проект, я немного переписал код, облагородил и хочу поделиться с вами, с помощью этого скрипта, можно отправлять сообщения на сервер Private Notes и получать в ответ готовые ссылки с паролем. Можно указать время после которого записка будет самоуничтожена. По умолчания записка удаляется после прочтения, с помощью скрипта можно указать до 720 часов.

Код:
<?php

class PrivateNotes {
    private function password($number) { 
        $code = '';
        $arr = [
            'a','b','c','d','e','f','g','h','i','j','k','l',
            'm','n','o','p','r','s','t','u','v','x','y','z',
            'A','B','C','D','E','F','G','H','I','J','K','L',
            'M','N','O','P','R','S','T','U','V','X','Y','Z',
            '1','2','3','4','5','6','7','8','9','0'
        ];
        for($i = 0; $i < $number; $i++) {
            $key = random_int(0, count($arr) - 1);
            $code .= $arr[$key];
        }

        return $code;
    }

    private function encrypt($message, $password) {
        $salt = openssl_random_pseudo_bytes(8);
        $key = $dx = openssl_digest($password.$salt, 'MD5', true);
        $dx = openssl_digest($dx.$password.$salt, 'MD5', true);
        $key .= $dx;
        $iv = openssl_digest($dx.$password.$salt, 'MD5', true);

        return base64_encode('Salted__'.$salt.openssl_encrypt($message, 'aes-256-cbc', $key, OPENSSL_RAW_DATA, $iv));
    }

  private function curl($data) {
        $header = [
            'Host: privnote.com',
            'User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0',
            'Accept: */*',
            'Accept-Language: en-us,en;q=0.5',
            'Accept-Encoding: gzip, deflate, br',
            'Referer: https://privnote.com',
            'Content-type: application/x-www-form-urlencoded',
            'X-Requested-With: XMLHttpRequest',
            'DNT: 1',
            'Connection: keep-alive'
        ];
        $ch = curl_init('https://privnote.com/');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
        $response = curl_exec($ch);
        curl_close($ch);

        return json_decode($response, true);
    }

    public function createNote($message, $time = 0) {
        $password    = $this->password(9);
        $encryptData = $this->encrypt($message, $password);
        $data        = [
            'data'            => $encryptData,
            'has_manual_pass' => false,
            'duration_hours'  => $time,
            'dont_ask'        => false,
            'data_type'       => 'T',
            'notify_email'    => '',
            'notify_ref'      => ''
        ];
        
        $result = $this->curl($data, $time);

        return $result['note_link'].'#'.$password;
    }
}

?>

Работать с классом так.

Код:
<?php

require_once('PrivateNotes.class.php');

$privateNotes = new PrivateNotes;

$message = 'Текст сообщения.';

echo $privateNotes->createNote($message); // Записка самоуничтожится после прочтения

// Или так

echo $privateNotes->createNote($message, 24); // Записка самоуничтожится через 24 часа, указывать не более 720

?>

Данный скрипт удобно использовать для передачи логов покупателям, для раздачи на форуме или в чате, после прочтения записка будет удалена и только 1 человек сможет ее прочитать. Данные на сервере сервиса хранятся в зашифрованном виде, алгоритм очень стойкий, один из самых лучших, его реализация так же есть в данном скрипте. Он повторяет в полной мере тот что находится у них на сервере, API для работы с сервисом нет.

Все вопросы оставляйте в данной теме. Хорошего вечера.
 

Вложения

  • PrivateNotes.class.zip
    1,2 KB · Просмотры: 292
Последнее редактирование:
  • Мне нравится
Реакции: JRD
Сверху Снизу