Как зашифровать значение в ini файле

Как лучше всего зашифровать значение в файле INI?

Использование ключа шифрования / дешифрования ??

Вероятно, стоит отметить, что если вы работаете в мире Windows, GetProfileString и WriteProfileString, API для взаимодействия с классическими файлами .ini, фактически устарели уже около десяти лет. Используйте их только в том случае, если вы выполняете 16-битную совместимость.

Greg D 22.12.2008 18:26
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
1
13 614
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Его тоже нужно расшифровать? Если нет, вы можете просто соль и хешировать его.

Если вы действительно хотите его расшифровать, то, я бы сказал, вам также, возможно, следует указать язык.

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

Но где же тогда вы планируете хранить этот ключ? Или вы собираетесь заставить пользователя ввести пароль и получить из него ключ? В противном случае было бы бессмысленно шифровать значение.

С какой целью? Что вы пытаетесь защитить или скрыть?

Вы можете использовать один из множества алгоритмов двустороннего шифрования ключей, доступных для всех платформ ... Но спросите себя, зачем вы вообще это делаете. Если вы пытаетесь сделать что-то защищенное от взлома, шифрование строк ini, вероятно, не приведет вас так далеко, потому что как только вы расшифруете ini, строка окажется в памяти. А ключ для расшифровки будет в вашей программе. Детская игра, чтобы отрубить.

Если вы просто хотите, чтобы люди не могли легко редактировать параметр, не помещайте его в ini. Выберите двоичный формат, который пользователю будет сложно редактировать.

Ответ принят как подходящий

С какой целью? Безопасность?

Если вы пытаетесь (например) зашифровать пароль в виде обычного текста, вам, вероятно, следует использовать некоторую реализацию PKI. Однако помните, что тогда управление ключами становится вашей проблемой. Простое шифрование значения не является панацеей, потому что ini-файл, скорее всего, находится в файловой системе локального хоста, предположительно в том же месте, где вы должны будете хранить свою пару ключей. Вы просто абстрагировали проблему на один уровень. Они не смогут прочитать ваш зашифрованный пароль напрямую, но если они найдут место, где вы храните свою пару ключей, они смогут расшифровать его самостоятельно.

MD5 хеш

Затем вы сравниваете хеш ("пароль") с хешем ini_file.password

Ха, спустя полные 18 месяцев знаний, я бы сказал следующее: безопасность хеш-функции MD5 серьезно скомпрометирована.

adam 19.05.2010 14:48

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

Я вставлю ключ доступа в сам код. Это не дает случайному наблюдателю просто просмотреть и подобрать пароль электронной почты.

Код тоже довольно простой. Вот он на Python.

import random
import base64
def tinycode(key, text, reverse=False):
    "(de)crypt stuff"
    rand = random.Random(key).randrange
    if reverse:
        text = base64.b64decode(text)
    text = ''.join([chr(ord(elem)^rand(256)) for elem in text])
    if not reverse:
        text = base64.b64encode(text)
    return text

Для большей безопасности я использую PGP, но тогда вам придется запрашивать пароль. Не существует идеальной настройки, это зависит от ваших потребностей.

Другие вопросы по теме