2013-07-30 30 views
-1

我想加密文件,但可以使用其中一個密碼訪問文件。使用2個密碼加密要訪問的文件

這是我的使用案例:我正在編寫一個程序,允許用戶擁有多個文件,所有文件都是加密的,只需一個「私人」密碼即可訪問。對於每個文件,用戶都可以創建一個單獨的「共享」密碼(對每個文件都不同),然後他們可以共享這些密碼以授予其他人訪問該文件的權限。基本上,每個文件都可以使用兩個密碼中的任何一個進行解密。

作爲安全要求,軟件不會存儲任何一個密碼,也不會存儲這些密碼的哈希。這意味着我無法組合密碼或哈希值;他們必須彼此獨立使用。

有沒有可用於實現此行爲的加密算法或方法?我不打算重新實現加密算法,所以我會尋找一個開源的實現,如果我可以確定一個合適的算法來尋找。

+2

這可能屬於[crypto.se] – Doorknob

+2

關於不包含實現問題的密碼學問題是Stack Overflow的主題。您不妨考慮在http://crypto.stackexchange.com上發佈此信息。你也可以考慮http://security.stackexchange.com。 –

回答

3

生成一個用來加密文件的密鑰。然後將兩個加密版本的密鑰放在文件中,並使用每個密碼進行加密。這樣,如果您知道其中一個密碼,則可以解密該文件。

+0

這樣做的問題是沒有任何東西阻止某人使用共享密碼來獲取文件加密的根密鑰。即使共享密碼被「撤銷」(通過刪除加密的共享密碼密鑰),攻擊者仍然可以使用通過共享密碼獲取的根密鑰對文件進行解密。如果這對於op來說是可以接受的,那麼使用兩個不同的密碼對文件進行兩次(分別)加密會更容易,而不是像這樣創建一個方案。 – Syon

+0

什麼共享密碼?兩個不同的密碼允許解密爲該文件生成的密鑰。這是許多產品使用的常見方案 - 想到pgp。 –

+0

Op定義了一個「專用」密碼和一個「共享」密碼。與其他人分享時共享。經過進一步的思考,我想這是一個合理的解決方案。我會補充一點,但是在修改和重新加密文件時,應該注意不要重複使用相同的根密鑰。 – Syon