0

CryptEncrypt()ファイルを暗号化してセッションキーを使用することでファイルを保護するアプリケーションに取り組んでいます。ドキュメントから、 どのセッションについて話しているのかわかりません。つまり、暗号化されたファイルを別のマシン (または同じマシンで別のユーザー) に持ち込んだ場合、パスワードを知っていても復号化できないということですか?

誰でも彼の要点を明確にするのを手伝ってくれませんか。

お時間をいただきありがとうございます。

4

1 に答える 1

2

暗号化されたファイルを他の人が別のマシン (または同じマシンで別のユーザー) に持ち込んだ場合、パスワードを知っていても復号化できないということですか?

いいえ、

パスフレーズに一致するハッシュを生成することにより、暗号化と復号化の両方のセッション キーを生成するのが一般的です。

// 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)
于 2012-10-05T13:43:38.423 に答える