首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >会话密钥- MSDN - Microsoft

会话密钥- MSDN - Microsoft
EN

Stack Overflow用户
提问于 2012-10-05 21:37:34
回答 1查看 130关注 0票数 0

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

有人能帮我澄清一下他的观点吗?

提前感谢您的宝贵时间。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-05 21:43:38

是不是说,如果其他人把我的加密文件带到另一台机器上(或者在同一台机器上,但不同的用户),即使他有密码也不能解密?

不,

通常通过生成与密码短语匹配的散列来生成用于加密和解密的会话密钥:

代码语言:javascript
运行
复制
// 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现在可以用于加密/解密。

代码语言:javascript
运行
复制
CryptEncrypt( m_hKey, NULL, bEOF, 0, m_pBlockBuffer, &dwCount, m_dwBufferLen)

或者..。

代码语言:javascript
运行
复制
CryptDecrypt( m_hKey, 0, bEOF, 0, m_pBlockBuffer, &dwCount)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12747481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档