会话密钥 - MSDN - Microsoft

Session Keys - MSDN - Microsoft

本文关键字:Microsoft MSDN 会话密钥      更新时间:2023-10-16

我正在开发一个应用程序,该应用程序通过使用CryptEncrypt()加密文件并使用会话密钥来保护文件,来自文档我找不到它在谈论什么会话.这是否意味着如果其他人将我的加密文件带到另一台机器(或在同一台机器上但不同的用户)即使他有密码也无法解密?

任何人都可以帮我澄清他的观点吗?

提前感谢您的时间。

这是否意味着如果其他人将我的加密文件带到另一个 机器(或在同一台机器上但不同的用户)无法解密 连他都有密码?

通常

通过生成与密码短语匹配的哈希来生成加密和解密的会话密钥:

// 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)