Использование AES256 в качестве «расшифровки» в MachineKey для SqlMembershipProvider - PullRequest
0 голосов
/ 09 июня 2011

Я создаю пользовательские регистрационные формы для проверки подлинности на основе форм для сайта SharePoint 2010 и храню пароли как «Зашифрованные» в таблице базы данных aspnet_Membership.

Моя настройка в web.config показывает, что параметром 'decryption' является "AES". Мой начальник просит меня использовать AES256, так как он более безопасен, но мне сложно понять, как это сделать. Я занимался поиском и поиском в стеке, но пока не смог найти ни одного поста, в котором бы объяснялось, что мне нужно делать, или где искать полезную информацию.

Думаю, у меня следующие вопросы:

  1. является ли "AES256" действительным значением для параметра "расшифровки", равным?
  2. Если нет, просто генерирует более длинный «ключ дешифрования» - все, что требуется для того, чтобы сделать AES сильнее? то есть если я сделаю мой ключ дешифрования длиной 64 символа, это будет AES256?
  3. если я совершенно не согласен с моим текущим мышлением, может кто-нибудь подсказать мне или объяснить (или ссылку на объяснение), как обновить мой web.config для использования AES256 вместо AES по умолчанию?

На всякий случай, если кто-то захочет сказать «Вы должны использовать Hashed» ... был там, обсуждал это, принятое решение использовать Encrypted. Просто подумал, что уберу это с дороги:)

1 Ответ

1 голос
/ 18 июня 2011
  1. Нет, вы можете использовать только «AES» в качестве параметра расшифровки для алгоритма AES.

  2. Да, если вы генерируете тот, который составляет 256 бит (64 байта), у вас есть AES256.На самом деле, вы также можете сгенерировать один длиной 512 бит.Чем длиннее это значение, тем сильнее шифрование.

  3. Нет необходимости.Вы, кажется, понимаете это.

Теперь, в .NET 4.0, они немного улучшили это, позволив SHA256 также использоваться для проверки.Подробнее см. Документация MSDN (снимок archive.org) .

...