Page.notfound

Page.notfound

Админ канала https://t.me/python_scrypt
Пикабушник
606 рейтинг 30 подписчиков 15 подписок 31 пост 4 в горячем
20

Для параноиков и тех кто не хочет светить свои данные

Всем привет, если часто регистрируетесь на сайтах то иногда возникает необходимость придумать данные. Нашлась Pyhton библиотека которая автоматизирует эту задачу))))))

Библиотека Faker — это мощный инструмент для генерации фейковых данных, полезный в тестировании и разработке. Она позволяет создавать реалистичные, но вымышленные данные, такие как имена, адреса, номера телефонов, электронные письма и многое другое. Faker поддерживает локализацию, что делает его удобным для генерации данных на различных языках.

Установка

Для установки библиотеки Faker используйте pip:

pip install faker

Основы работы с Faker

Для параноиков и тех кто не хочет светить свои данные
Для параноиков и тех кто не хочет светить свои данные
Для параноиков и тех кто не хочет светить свои данные
Для параноиков и тех кто не хочет светить свои данные
Для параноиков и тех кто не хочет светить свои данные

Ставьте + если не знали о такой библиотеке.

Подписывайтесь на мой канал по Python: https://t.me/python_scrypt (полезная инфа, обзор библиотек)

Показать полностью 5
157

Какая разница между аутентификацией и авторизацией ? Разбираемся с примерами на Python

Аутентификация и авторизация — это два различных процесса управления доступом в системе безопасности, которые часто путают, но каждый из них играет свою уникальную роль.

Аутентификация — это процесс установления подлинности личности пользователя. В ходе аутентификации пользователь представляет доказательства своей личности, такие как пароль, токен или отпечаток пальца, а система проверяет их. Аутентификация может быть однофакторной (используется один уровень защиты), двухфакторной (два уровня защиты) или многофакторной (более двух уровней защиты).

Основная цель аутентификации — убедиться в подлинности пользователя перед предоставлением доступа к системе или приложению.

Авторизация — это процесс проверки прав пользователя на доступ к информации. Авторизация носит вторичный характер и происходит после успешной аутентификации пользователя в системе. Факторы подтверждения прав могут включать ролевой доступ (определённые информационные ресурсы доступны для определённой группы пользователей), мандатный доступ (информация разделена на уровни доступа) или избирательный доступ (владелец информации самостоятельно определяет права доступа для пользователей).

Таким образом, аутентификация направлена на установление подлинности личности пользователя, а авторизация — на проверку прав пользователя на доступ к информации. Обе процедуры важны для обеспечения надёжной защиты личных данных пользователей в интернете.

Пожалуйста поддержите плюсом если понравилась статья, также мой канал по python: https://t.me/python_scrypt публикую там полезную инфу, обзор библиотек, статьи

Показать полностью 2
15

Разбираем вопросы с собесов по Python

Что такое динамическая типизация ?

Динамическая типизация - это подход к типизации, при котором типы переменных определяются во время выполнения программы, а не на этапе компиляции. С динамической типизацией тип переменной связывается с данными во время выполнения на основе их значения и контекста использования. Это означает, что переменная может содержать данные любого типа, и ее тип может изменяться в процессе выполнения программы.

Пример:

Разбираем вопросы с собесов по Python

В этом примере переменная x сначала содержит целое число, затем строку, а затем список.

Тип переменной определяется автоматически во время выполнения программы на основе значения, присвоенного переменной.

Преимущества динамической типизации включают гибкость и удобство использования. Однако это также может привести к потенциальным ошибкам во время выполнения, если переменная содержит неожиданные данные, и затрудняет статический анализ кода на этапе компиляции.

Хочу посоветовать отличный канал по python: https://t.me/python_scrypt (полезная инфа, обзор библиотек)

Показать полностью 1
13

Шифруем файлы с помощью Python

Всем привет) от нечего делать решил написать простейшую прогу на языке python для шифрования текстовых файлов. Программа работает без каких либо подключаемых модулей, и не претендует на какое либо серьезное шифрование)

Представим ситуацию что у нас имеется ПК на котором кроме интерпретатора Python ничего нет) и есть текстовый файл который желательно скрыть от посторонних глаз)

В этой ситуации можно применить шифр Цезаря, но это будет слишком просто так что постараемся придумать другой способ

Начнем)

Сначала создаем меню с выбором из двух пунктов: Зашифровать и расшифровать файл.

menu = int(input("1 - зашифровать\n2 - расшифровать\nВыберите цифру и нажмите Enter: ")) # делаем меню для пользователя

Далее разберем первый пункт а именно шифрование файла.

По умолчанию будем шифровать файл который под названием "file1.txt"(сюда можно вписать название вашего файла)

Открываем файл который нужно зашифровать с помощью with open (отступы обозначены > > )

Далее создаем переменную txt и записываем туда информацию из файла

menu = int(input("1 - зашифровать\n2 - расшифровать\nВыберите цифру и нажмите Enter: ")) # делаем меню для пользователя

if menu == 1:

> > with open("file1.txt", "rb") as file: # открываем файл который будем зашифровывать

> > > > txt = file.read() # читаем файл

Затем переводим в объект byte, кодировка cp1251, допишем в код

menu = int(input("1 - зашифровать\n2 - расшифровать\nВыберите цифру и нажмите Enter: ")) # делаем меню для пользователя

if menu == 1:

> > with open("file1.txt", "rb") as file: # открываем файл который будем зашифровывать

> > > > txt = file.read() # читаем файл

> > txt = txt.decode('cp1251') # далее переводим значение byte

> > bytes = txt.encode('cp1251')

> > decode = int.from_bytes(bytes, byteorder='big')

На последней строчке остановимся подробно.

Команда int.from_bytes() в Python принимает байты и конвертирует их в целое число. “bytes” - это последовательность байтов, которую нужно преобразовать, а “byteorder” определяет порядок байтов (в данном случае “big” - старший байт первый). Полученное целое число возвращается и может быть использовано в коде.

Теперь наша задача взять любое число которое будет паролем для обратной расшифровки и прибавить к полученному массиву байтов, попросим пользователя указать это число.

menu = int(input("1 - зашифровать\n2 - расшифровать\nВыберите цифру и нажмите Enter: ")) # делаем меню для пользователя

if menu == 1:

> > with open("file1.txt", "rb") as file: # открываем файл который будем зашифровывать

> > > > txt = file.read() # читаем файл

> > txt = txt.decode('cp1251') # далее переводим значение byte

> > bytes = txt.encode('cp1251')

> > decode = int.from_bytes(bytes, byteorder='big')

> > num = input("Введите любое число: ")

Складываем полученный массив байтов и число

menu = int(input("1 - зашифровать\n2 - расшифровать\nВыберите цифру и нажмите Enter: ")) # делаем меню для пользователя

if menu == 1:

> > with open("file1.txt", "rb") as file: # открываем файл который будем зашифровывать

> > > > txt = file.read() # читаем файл

> > txt = txt.decode('cp1251') # далее переводим значение byte

> > bytes = txt.encode('cp1251')

> > decode = int.from_bytes(bytes, byteorder='big')

> > num = input("Введите любое число: ")

> > output = int(decode) + int(num)

Далее перезаписываем измененный файл

menu = int(input("1 - зашифровать\n2 - расшифровать\nВыберите цифру и нажмите Enter: ")) # делаем меню для пользователя

if menu == 1:

> > with open("file1.txt", "rb") as file: # открываем файл который будем зашифровывать

> > > > txt = file.read() # читаем файл

> > txt = txt.decode('cp1251') # далее переводим значение byte

> > bytes = txt.encode('cp1251')

> > decode = int.from_bytes(bytes, byteorder='big')

> > num = input("Введите любое число: ")

> > output = int(decode) + int(num)

> > with open("file.txt", "w") as file:

> > > > file.write(str(output))

> > print("Зашифрованный файл записан")

Протестируем наш скрипт) для этого в папке со скриптом создам файл file1.txt c ключами bitcoin.

После запуска скрипта выбираю пункт зашифровать файл и ввожу пароль 123

Все зашифрованный файл записан, смотрим файл)

Ничего не разобрать вот и отлично) теперь займемся расшифровкой.

Для расшифровки проведем обратные действия.

elif menu == 2: # начинаем со второго пункта меню

> > with open("file1.txt", "rb") as file: # читаем файл и извлекаем число из него

> > > > txt = file.read()

> > txt = txt.decode('cp1251')

> > num = input("Введите число для расшифровки: ") # просим ввести число, с пмощью которого было зашифровано сообщение

> > txt = int(txt) - int(num) # находим исходный массив данных

> > byte_str = int(txt).to_bytes((int(txt).bit_length() + 7) // 8, byteorder="big") # переводим массив обратно в текст

Тут стоит пояснить последнее действие а именно зачем мы прибавляем 7 и целочисленно делим на 8. Мы прибавляем 7, чтобы учесть дополнительный бит, который мы получаем при преобразовании числа из двоичной системы счисления в десятичную. Этот дополнительный бит обычно равен 1, и он не может быть представлен точно в десятичной системе счисления. Мы делим на 8, потому что каждый бит в двоичном числе требует одного десятичного разряда для своего представления. Таким образом, мы получаем количество десятичных разрядов, которое нам нужно для представления двоичного числа в десятичной системе счисления.

elif menu == 2: # начинаем со второго пункта меню

> > with open("file1.txt", "rb") as file: # читаем файл и извлекаем число из него

> > > > txt = file.read()

> > txt = txt.decode('cp1251')

> > num = input("Введите число для расшифровки: ") # просим ввести число, с пмощью которого было зашифровано сообщение

> > txt = int(txt) - int(num) # находим исходный массив данных

> > byte_str = int(txt).to_bytes((int(txt).bit_length() + 7) // 8, byteorder="big") # переводим массив обратно в текст

> > with open("file1.txt", "w") as file: # записываем расшифрованный файл

> > > > file.write(str(b))

> > print("Расшифрованный файл записан")

И получаем расшифрованный файл

Фото кода на python

Ссылка на копирование - тык

Канал с инфой по Python - https://t.me/python_scrypt

Показать полностью 6
6

Разбираем вопросы с собесов по Python

Что такое асинхронность ?

Асинхронность — это концепция, позволяющая выполнение задач в программе так, чтобы они не блокировали выполнение друг друга. Это значит, что программа может переключаться между задачами, не дожидаясь завершения каждой из них. Это особенно полезно в ситуациях, когда выполнение задачи зависит от внешних факторов, которые могут занять неопределенное время (например, ожидание ответа от веб-сервиса или чтение файла).

В Python асинхронность реализуется с помощью корутин и асинхронного ввода-вывода (asyncio) . Это позволяет программе быть более эффективной и отзывчивой, особенно при работе с I/O-задачами, такими как сетевое взаимодействие или операции с диском, которые могут значительно замедлить выполнение программы, если использовать блокирующий ввод-вывод.

Пример асинхронной функции (> > обозначены отступы в коде):

import asyncio

async def main():

> > print('Привет')

> > await asyncio.sleep(1) # Имитация асинхронной задачи, например, запроса к веб-серверу

> > print('Мир')

asyncio.run(main())

В этом примере async def определяет асинхронную функцию. Ключевое слово await используется перед вызовом функции, которая может быть асинхронной (в нашем случае asyncio.sleep), указывая, что программа может переключиться на выполнение другой задачи во время ожидания завершения текущей. asyncio.run(main()) запускает асинхронный цикл событий, который управляет выполнением асинхронных функций.

Использование асинхронности позволяет повысить производительность программы за счет неблокирующего выполнения задач, особенно когда есть много операций ввода-вывода, таких как запросы к сети или к базам данных.

Асинхронность позволяет делать программу более эффективной и отзывчивой, выполняя задачи параллельно и не ожидая завершения каждой из них. Это достигается за счет использования асинхронных операций, которые не блокируют выполнение программы.

Мой канал по python: https://t.me/python_scrypt (полезная инфа, обзор библиотек)

Показать полностью

Зачем создавать копию объекта в Python?

В мире программирования на Python, одна из важнейших концепций, которую необходимо понять, это создание копий объектов. Это особенно полезно, когда вы не хотите изменять первоначальный объект, но вам нужно внести изменения в его копию.

➡️ Поверхностное и глубокое копирование

Существуют два типа копирования в Python - поверхностное и глубокое. Поверхностное копирование создает новый объект, но заполняет его ссылками на оригинальные дочерние объекты. Глубокое копирование, с другой стороны, создает новый объект и рекурсивно добавляет копии дочерних объектов оригинала. Выбор между этими двумя зависит от ваших конкретных потребностей.

➡️ Избегание неожиданных побочных эффектов

Когда вы работаете с изменяемыми объектами, такими как списки или словари, изменение копии может повлиять на оригинал. Это может привести к неожиданным побочным эффектам в вашем коде. Создание копии объекта позволяет вам вносить изменения без воздействия на оригинальный объект.

➡️ Повышение производительности кода

Создание копий объектов может помочь улучшить производительность вашего кода. Когда вы работаете с большими объектами или структурами данных, изменение оригинала может быть ресурсоемким процессом. Создание копии и работа с ней, вместо оригинала, может сэкономить время и ресурсы.

Источник: https://t.me/python_scrypt (Вопросы с собесов, обзор библиотек)

Показать полностью
10

Конвертируем два списка в словарь с помощью функции zip()

Порой сталкивался с задачей объединить два списка в словарь, в Python для этого есть замечательная функция zip().

Используем элементы первого списка в качестве ключей для словаря, а элементы второго - в качестве значений.

fruits = ["Banana", "Apple", "Kiwi", "Mango"]

prices = [1.08, 2.32, 3.03, 1.97]

fruit_dictionary = dict(zip(fruits, prices))

print(fruit_dictionary)

{'Banana': 1.08, 'Apple': 2.32, 'Kiwi': 3.03, 'Mango': 1.97}

Ниже прикреплю картинку с кодом

Конвертируем два списка в словарь с помощью функции zip()
Отличная работа, все прочитано!