CryptEncrypt()
ファイルを暗号化してセッションキーを使用することでファイルを保護するアプリケーションに取り組んでいます。ドキュメントから、
どのセッションについて話しているのかわかりません。つまり、暗号化されたファイルを別のマシン (または同じマシンで別のユーザー) に持ち込んだ場合、パスワードを知っていても復号化できないということですか?
誰でも彼の要点を明確にするのを手伝ってくれませんか。
お時間をいただきありがとうございます。
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)