我有一個使用 Microsoft CryptoAPI的Windows應用程序(使用Visual Studio)。現在需要開發一個Mac OS X 應用程序,該應用程序能夠讀取由WinApp加密的數據,並在Mac OS X上加密將由WinApp解密的數據。在WinApp 加密/能解密在這樣的方式初始化:將Microsoft CryptoAPI移植到Mac OS
::CryptEncrypt(m_hCryptKey, 0, TRUE, 0, pBuf, &dwCnt, dwLen);
::CryptDecrypt(m_hCryptKey, 0, TRUE, 0, pBuf, &dwCnt);
據我瞭解,我需要找到一個實現MD5庫:
::CryptAcquireContext(&m_hCryptProv, NULL, MS_DEF_PROV, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT);
::CryptCreateHash(m_hCryptProv, CALG_MD5, 0, 0, &m_hCryptHash);
::CryptHashData(m_hCryptHash, pbtPSW, dwPSWLen, 0);
::CryptDeriveKey(m_hCryptProv, CALG_RC4, m_hCryptHash, 0, &m_hCryptKey);
而且加密/能解密使用以下 散列加RC4編碼/解碼。看起來有這樣的庫的數量是 。例如:matrixSSL,OpenSSL。但 使用我的puproses庫並不明顯(特別是 考慮到,我不熟悉Sequrity/Crypting API)。有人可以推薦一個特定的加密庫嗎? May 有沒有我的任務的代碼示例?
此外:
看來主要問題是,我需要:: CryptDeriveKey的便攜式模擬,與Microsoft兼容的版本(即產生相同的密鑰)。有人知道這樣的嗎?還是一種由:: CryptDeriveKey創建密鑰的算法?
嗯,你要加密端口相關的代碼,甚至沒有認識的來源做什麼。從安全角度來看沒什麼意義... – 2011-01-27 13:13:06
尤金,我想要做的 - 用便攜式庫中的模擬代替原來的CryptoAPI功能。而且這個工作儘可能地短,這是可取的。這不是一個關鍵的應用程序,加密/解密只是一個小而不是非常重要的部分。 – VitalyVal 2011-01-27 13:51:11