Как зашифровать значение в INI-файле - PullRequest
3 голосов
/ 22 декабря 2008

Каков наилучший способ шифрования значения в файле INI?

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

Ответы [ 6 ]

2 голосов
/ 22 декабря 2008

Для личных сценариев, где у меня есть пароль электронной почты, я использую 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, но вам нужно будет ввести пароль. Там нет идеальной настройки, это зависит от ваших потребностей.

2 голосов
/ 22 декабря 2008

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

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

2 голосов
/ 22 декабря 2008

Для чего? Что вы пытаетесь защитить или запутать?

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

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

1 голос
/ 22 декабря 2008

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

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

0 голосов
/ 22 декабря 2008

MD5 хеш

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

0 голосов
/ 22 декабря 2008

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

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

...