我正在使用CryptoApi加密文件(非對稱加密)。每個東西都可以,但是當文件很大時,它不能對它進行加密。我搜索並發現我必須逐塊加密。 CryptEncrypt
函數中的Final
標誌除了最後一個塊必須是假的。在C++中使用cryptoapi加密大文件
我知道以上的所有概念,但我不知道如何才能實現它們。我的意思是我不知道如何讀取,加密和逐塊寫入。 你能給我一個真實的代碼示例。
更新:
我正在使用CryptoApi加密文件(非對稱加密)。每個東西都可以,但是當文件很大時,它不能對它進行加密。我搜索並發現我必須逐塊加密。 CryptEncrypt
函數中的Final
標誌除了最後一個塊必須是假的。在C++中使用cryptoapi加密大文件
我知道以上的所有概念,但我不知道如何才能實現它們。我的意思是我不知道如何讀取,加密和逐塊寫入。 你能給我一個真實的代碼示例。
更新:
我寫這個解決方案對程序員誰將會在未來這個問題:
在這個環節已經顯示出如何加密大文件(逐塊):
https://msdn.microsoft.com/en-us/library/windows/desktop/aa382358%28v=vs.85%29.aspx
注意:當你想使用上述代碼時必須改變一些東西
1)在加密時,塊大小必須設置爲128 - 11(DWORD dwBlockLen = 128 - 11
)
2)解密,塊大小必須設置爲128(DWORD dwBlockLen = 128
)
在Win 7測試的兩種
試着這麼做:
final_flag <- false
repeat
this_block <- read_next_block(file)
if (is_EoF(file)) {final_flag <- true }
encrypt(this_block, final_flag)
until (final_flag == true)
我不知道有足夠的瞭解C++的文件系統處理編寫工作檢查文件的結尾,但其中應該有一個文件。
能告訴你,你會如何加密文件小一些代碼?也鏈接到API文檔。 –
@AidanGomez第一篇文章已更新 – user3864147