#python #python-3.x #twitter #hash #hashlib
#python #python-3.x #Twitter #хэш #hashlib
Вопрос:
Я пишу программу, которая анализирует файл и отправляет строки из него в твиттере. Я смог написать программу, но мне было любопытно, должен ли я хэшировать ключи и токены, которые Twitter предоставляет для дополнительной безопасности? Они советуют вам защищать ключи, потому что они могут быть использованы для доступа к вашей учетной записи. Я изучал возможность использования библиотеки hashlib Python для этого, в частности этой функции hashlib.
hashlib.pbkdf2_hmac(hash_name, password, salt, iterations, dklen=None)
Чтобы предотвратить атаки методом перебора паролей, вы должны использовать функцию деривации ключа и соль, поэтому я хочу знать, имеет ли смысл делать это с ключами и токенами? Я хочу один раз хэшировать ключи и токены, сохранить их в файле базы данных, а затем иметь возможность расшифровывать хэши, когда я захочу взаимодействовать с Twitter. Возможно ли это и какой метод я должен использовать для этого?
Комментарии:
1. Нет, это не имеет никакого смысла. Хеширование является односторонним, поэтому вы не можете получить их обратно, когда вам нужно их использовать. Шифрование является двусторонним, но тогда любой другой тоже может их вернуть. К чему вы пытаетесь добавить безопасность и от чего?
2. Это то, что я понял, и я не хочу явно помещать свои ключи и токены в скрипт. Я должен представить класс, и я не хочу, чтобы мои закрытые ключи и токены были в виде обычного текста. Я хочу зашифровать их, сохранить шифрование в базе данных sqlite3, а затем, когда они мне понадобятся, извлечь и расшифровать их, чтобы я мог отправить твит.
3. Но почему вы думаете, что это помогает? Если вы не хотите, чтобы они были в вашем исходном коде (что вполне разумно, поскольку это также исключает управление версиями и т. Д.), Просто получите к ним доступ из переменных среды или внешнего файла. Шифрование не дает вам никаких преимуществ по сравнению с этим.
4. Я создал отдельный модуль python, в котором хранятся мои ключи и токены, которые я затем импортировал в свою основную программу. Я просто не был уверен, что другие люди сделали для защиты там ключей и токенов в коде.