Как сохранить пароли в приложении Winforms?

Swift 4. Если ваш массив содержит элементы типа [String: AnyObject]. Итак, чтобы найти индекс элемента, используйте приведенный ниже код

var array = [[String: AnyObject]]()// Save your data in array
let objectAtZero = array[0] // get first object
let index = (self.array as NSArray).index(of: objectAtZero)

Или Если вы хотите найти индекс на основе ключа из словаря. Здесь массив содержит объекты класса Model, и я сопоставляю свойство id.

let userId = 20
if let index = array.index(where: { (dict) -> Bool in
       return dict.id == userId // Will found index of matched id
}) {
print("Index found")
}
31
задан Sam 17 August 2014 в 20:41
поделиться

4 ответа

Освященный метод должен использовать CryptoAPI и API Защиты данных.

Для шифрования используйте что-то вроде этого (C++):

DATA_BLOB blobIn, blobOut;
blobIn.pbData=(BYTE*)data;
blobIn.cbData=wcslen(data)*sizeof(WCHAR);

CryptProtectData(&blobIn, description, NULL, NULL, NULL, CRYPTPROTECT_LOCAL_MACHINE | CRYPTPROTECT_UI_FORBIDDEN, &blobOut);
_encrypted=blobOut.pbData;
_length=blobOut.cbData;

Дешифрование является противоположным:

DATA_BLOB blobIn, blobOut;
blobIn.pbData=const_cast<BYTE*>(data);
blobIn.cbData=length;

CryptUnprotectData(&blobIn, NULL, NULL, NULL, NULL, CRYPTPROTECT_UI_FORBIDDEN, &blobOut);

std::wstring _decrypted;
_decrypted.assign((LPCWSTR)blobOut.pbData,(LPCWSTR)blobOut.pbData+blobOut.cbData/sizeof(WCHAR));

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

24
ответ дан 27 November 2019 в 22:35
поделиться

Как упомянуто, Защита данных API является хорошим способом сделать это. Обратите внимание, что при использовании.NET 2.0 или больше Вы не должны использовать P/Invoke для вызова DPAPI. Платформа переносит вызовы с Системой. Безопасность. Криптография. Класс ProtectedData.

11
ответ дан 27 November 2019 в 22:35
поделиться

Я нашел эту книгу keith Brown Руководством разработчика.NET к безопасности Windows. Это имеет некоторые хорошие образцы, покрывающие все виды сценариев безопасности. Свободный Интерактивная версия также доступна.

4
ответ дан 27 November 2019 в 22:35
поделиться

Если Вы храните его как безопасную строку и сохраняете безопасную строку в файл (возможно использующий Изолированное устройство хранения данных , единственное время, у Вас будет незашифрованный пароль, - при дешифровании его для создания mbstore. К сожалению, конструктор не берет SecureString или Учетный объект.

2
ответ дан 27 November 2019 в 22:35
поделиться
Другие вопросы по тегам:

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