Шифрование сети. Конфигурация

Следующий код является оперативной перестановкой данного списка, реализованного как генератор. Так как это только возвращает ссылки на список, список не должен быть изменен вне генератора. Решение нерекурсивно, так использование низкая память. Работа хорошо также с несколькими копиями элементов во входном списке.

def permute_in_place(a):
    a.sort()
    yield list(a)

    if len(a) <= 1:
        return

    first = 0
    last = len(a)
    while 1:
        i = last - 1

        while 1:
            i = i - 1
            if a[i] < a[i+1]:
                j = last - 1
                while not (a[i] < a[j]):
                    j = j - 1
                a[i], a[j] = a[j], a[i] # swap the values
                r = a[i+1:last]
                r.reverse()
                a[i+1:last] = r
                yield list(a)
                break
            if i == first:
                a.reverse()
                return

if __name__ == '__main__':
    for n in range(5):
        for a in permute_in_place(range(1, n+1)):
            print a
        print

    for a in permute_in_place([0, 0, 1, 1, 1]):
        print a
    print
21
задан Community 23 May 2017 в 12:18
поделиться

6 ответов

Я считаю, что есть два способа сделать это:

с использованием aspnet_regiis с использованием DPAPI или RSA , или делать это программно .

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

Исходя из моего опыта использования этого, если вы пишете настраиваемый раздел конфигурации, вы должны установить DLL, содержащую классы для этого раздела, в GAC. Для проекта, над которым я работал, я в основном написал следующий подход:

  • Скопируйте конфигурационную DLL в GAC.
  • Выполните шифрование.
  • Удалите конфигурационную DLL из GAC.

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

8
ответ дан 29 November 2019 в 21:32
поделиться

Вот команды для шифрования файла web.config без какого-либо программирования ...

Для шифрования

aspnet_regiis -pef "Section" "Path exluding web.config"

Для дешифрования

aspnet_regiis -pdf "Section" "Path exluding web.config"

С помощью этих команд вы можете зашифровать или расшифровать весь раздел .

13
ответ дан 29 November 2019 в 21:32
поделиться
4
ответ дан 29 November 2019 в 21:32
поделиться

Использование средства командной строки aspnet_regiis.exe

Вы также можете зашифровать и расшифровать разделы в файле Web.config с помощью средства командной строки aspnet_regiis.exe, которое можно найти в каталог% WINDOWSDIR% \ Microsoft.Net \ Framework \ version.

Посмотрите здесь: http://aspnet.4guysfromrolla.com/articles/021506-1.aspx .

0
ответ дан 29 November 2019 в 21:32
поделиться

Используйте инструмент aspnet_regiis в каталоге вашей платформы:

                                        -- CONFIGURATION ENCRYPTION OPTIONS --

pe section            Encrypt the configuration section. Optional arguments:
                      [-prov provider] Use this provider to encrypt.
                      [-app virtual-path] Encrypt at this virtual path. Virtual path must begin with a forward slash.
                      If it is '/', then it refers to the root of the site. If -app is not specified, the root
                      web.config will be encrypted.
                      [-site site-name-or-ID] The site of the virtual path specified in -app. If not specified, the
                      default web site will be used.
                      [-location sub-path] Location sub path.
                      [-pkm] Encrypt/decrypt the machine.config instead of web.config.

pd section            Decrypt the configuration section. Optional arguments:
                      [-app virtual-path] Decrypt at this virtual path. Virtual path must begin with a forward slash.
                      If it is '/', then it refers to the root of the site. If -app is not specified, the root
                      web.config will be decrypted.
                      [-site site-name-or-ID] The site of the virtual path specified in -app. If not specified, the
                      default web site will be used.
                      [-location sub-path] Location sub path.
                      [-pkm] Encrypt/decrypt the machine.config instead of web.config.
2
ответ дан 29 November 2019 в 21:32
поделиться

Вы должны начать отсюда, простое, хорошо объясненное пошаговое руководство в MSDN: Как: зашифровать разделы конфигурации в ASP.NET 2.0 с помощью DPAPI

1
ответ дан 29 November 2019 в 21:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: