2012-03-08 48 views
0

我想提出一個小項目在GAE(使用Java)大學中,我實現在當用戶將消息發送給其他用戶「短信服務」的形式,消息由使用Java加密庫的128位AES加密,然後存儲在服務器上。然後必須由收件人輸入生成的密鑰才能閱讀該消息。上傳並加密從谷歌應用程序引擎的任何文件

我現在想一體化文件上傳(附件)在此能力。因此,當用戶附加一個文件(可以是ANY文件,jpg,gif,txt,pdf,doc,exe等等)時,它首先被加密然後存儲。我想解釋任何文件,如txt文件(一系列字符),以便加密/解密可以通過現有代碼完成。 (這是否有意義?我在想這個,因爲你可以在記事本中打開任何文件並將文件看作一系列字符)。我想保留附件的大小限制爲5-10 Mb,但如果由於某種原因,這隻能用於更小的尺寸(< 1Mb),即使對我來說也是如此。

因此,如果用戶將文件附加,說abc.exe,我把它解釋爲一個txt文件,和的abc.txt與消息一起加密。然後,當收件人輸入正確的密鑰時,我解密該消息並記錄abc.txt,但作爲abc.exe。 (我可以要求用戶先轉換任何文件爲.txt,但是這將是尷尬)

可以這樣做? 我是web開發,servlets和GAE(我的第一個使用這些任何項目的項目)的新手,所以請耐心等待。

謝謝!

+0

從我的回答Shitij缺少任何東西?請跟進你的問題。 – 2012-03-17 13:59:16

回答

1

那麼,簡單的asnwer是:它可以做到。正常的操作是將文件讀取爲二進制文件,對數據進行加密,然後使用base 64對其進行編碼。然後接收方基站64解碼它,解密它並且可能寫入數據。 Base 64將增長數據,每3個字節使用4個字符(+可能在末尾有一個或兩個填充字節)。

如果你需要更多的相關信息,如文件名,你需要創建某種對數據容器和加密。一個解決方案是使用ASN.1,儘管它有一個相對較大的學習曲線。

要查看的一個例子,看看所述SMIME規格和其限定與加密附件的郵件的CMS(加密消息語法)。 CMS被廣泛使用。 CMS可在Bouncy Castle的bcmail(或後續)包中使用。

請注意,如果要創建帶有加密的在線協議,則需要某種身份驗證/完整性保護。一個好的PKI基礎設施也可能是需要的。這是一個非常大的項目。

+0

感謝您的回覆貓頭鷹! 對不起,這麼晚回覆。對於我不得不上大學的項目,我放棄了附件的想法,因爲在我看來,這似乎太難做了。所以我暫時忘記了這一點。 但是我想在幾個月內跟進這個項目,而且我很少知道你在最後一篇文章中提到的是什麼:P。所以我會閱讀有關這些事情,並在幾個月後回到這裏(我現在正在進行夏季訓練):) – 2012-06-25 07:38:41

+0

好的,我會等待:P。感謝您的迴應,即使有點晚了。 – 2012-06-25 09:03:01

相關問題