| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Шифрование |
| Автор: polin11 6.6.2015, 16:29 | ||
Нашел исходник для шифрования строки при помощи сэссионного ключа.
Пробовал на visual studio 2010, с++ bulder 6. Не шифрует строку Test, кто знает почему Вывод: Cryptographic provider initialize CryptGenKey Session key generated CryptEncrypt Encrypted string1: Test Encryption completed Encrypted string2: Test |
| Автор: polin11 7.6.2015, 09:01 |
| Спасибо за информацию, но я хотел бы узнать, почему не выполняются функции CryptGenKey() и CryptEncrypt(). |
| Автор: feodorv 7.6.2015, 13:38 | ||
Для этого нужно проделать совершенно несложную исследовательскую работу. Если функция Windows API вернула FALSE, то посмотрим на код ошибки, которую она вернула. Как узнать код ошибки? https://msdn.microsoft.com/en-us/library/windows/desktop/aa379941%28v=vs.85%29.aspx в описании функции CryptGenKey (первой, давшей сбой) и находим:
Какой код ошибки у Вас будет, я не знаю, но скорее всего что-то вроде ERROR_INVALID_PARAMETER, потому что при внимательном чтении мануала по CryptGenKey никаких применяемых к нему флагов CRYPT_ENCRYPT и CRYPT_DECRYPT обнаружено не было. Заменив соответствующий аргумент на 0, получаем работающую программу |