Расшифровка JWT HS256 и сверка сигнатуры sha256
Разбор JWT HS256 шифрования, расшифровка JWT HS256, сравнение сигнатур sha256 на целостность информации.
Пример создания CSV с разделителем строки ";"
Код:
// 1
$fp = fopen('./fileName.csv', 'w');
if ($fp === false) {
// 2
exit('Can not create file (No Rights) ./fileName.csv');
}
// 3
$models = [
[
'name' => 'Visa',
'type' => 'Card',
'balance' => '10.0'
],
[
'name' => 'Master',
'type' => 'Card',
'balance' => '0'
]
];
// 4
fwrite($fp, '"Имя";"Тип";"Баланс"' . "\n");
foreach ($models as $v) {
fwrite($fp, '"' . $v['name'] . '";"'
. $v['type'] . '";"'
. $v['balance'] . '"'
. "\n");
}
// 5
fseek($fp, 0);
fclose($fp);
// 6
$data = file_get_contents('./fileName.csv');
// 7
header('Content-Type: text/csv'); // 7.1
header('Content-Disposition: attachment; filename="fileName.csv"'); // 7.2
header("Content-Transfer-Encoding: binary"); // 7.3
header('Expires: 0'); // 7.4
header('Pragma: no-cache'); // 7.5
header("Content-Length: ".strlen($data)); // 7.6
// 8
exit($data);
Примечание:
Чтобы сработали header, перед срабатыванием кода не должно быть BOM и любого вывода информации.
1 - Создаем файл fileName.csv в корне сайта для записи.
2 - Предупреждаем про ошибку, если нет прав на запись.
3 - Массив значений, который мы будем обрабатывать
4 - Запись в файл. '"Имя";"Тип";"Баланс"' . "\n" (";" - разделитель строки, "\n" - перенос строки).
5 - Возвращаем указатель на начало файла и закрываем файл (сохраняем).
6 - Считываем файл заново.
7 - Даем заголовки для возможности скачать файл.
7.1 - Параметр определяющий тип файла.
7.2 - Указатель на прикрепление файла.
7.3 - В каком виде передавать (в данном случае в бинарном).
7.4, 7.5 - Указатель чтобы не кешировать файл и постоянно отдавать актуальный.
7.6 - Размер контентной части файла.
8 - Выводим информацию, которая в связке с заголовками даст возможность скачать ее в CSV файл.
Результат:
Разбор JWT HS256 шифрования, расшифровка JWT HS256, сравнение сигнатур sha256 на целостность информации.
Рассмотрим исправление исчезновения пробелов перед переменными в старой версии Twig на php 7.4 не обновляя версию.
Последние шаблоны от ImageCMS 4.12, для скачивания нужна авторизация.
Рассмотрим варианты популярные варианты хранения товаров в корзине в интернет-магазине. Обозначим плюсы и минусы таких хранений. Рассмотрим варианты долгосрочного хранения корзины.
Создание ключа для imageCMS 4.9-4.12.1 Pro и Pre. Для получения следует авторизироваться.