Ключи сеанса — MSDN — Microsoft

Я работаю над приложением, которое защищает файлы с помощью шифрования CryptEncrypt() и использовать ключ сеанса, из документация
Я не могу узнать, о каком сеансе идет речь. Значит ли это, что если кто-то другой перенесет мой зашифрованный файл на другой компьютер (или на тот же компьютер, но с другим пользователем), он не сможет расшифровать его, даже если у него есть пароль?

Может ли кто-нибудь помочь мне прояснить свою точку зрения, пожалуйста.

Спасибо заранее за ваше время.

0

Решение

Значит ли это, что если кто-то другой перенесет мой зашифрованный файл в другой?
Машина (или на той же машине, но другой пользователь) не может быть расшифрована
это даже у него есть пароль?

Нет,

Обычно генерируется сеансовый ключ как для шифрования, так и для дешифрования путем генерации хеша, который соответствует парольной фразе:

// Hash in the password data.
if(!CryptHashData( m_hHash, (BYTE *) m_strPassphrase.c_str(), (DWORD) m_strPassphrase.length(), 0))
{
//  ...
}

// Derive a session key from the hash object.
if(!CryptDeriveKey( m_hCryptProv, ENCRYPT_ALGORITHM, m_hHash, KEYLENGTH, &m_hKey))
{
//...
}

m_hKey Теперь можно использовать для шифрования / дешифрования.

CryptEncrypt( m_hKey, NULL, bEOF, 0, m_pBlockBuffer, &dwCount, m_dwBufferLen)

или же ..

CryptDecrypt( m_hKey, 0, bEOF, 0, m_pBlockBuffer, &dwCount)
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]