2010-11-20 64 views
0

問題: 我需要PHP中使用一個密鑰來加密隨後的JavaScript解密使用相同的密鑰加密在PHP然後在javascript解密使用相同的密鑰

原因: 想在我的Adobe AIR應用程序加密我的javascript的99% 。

我到目前爲止是這樣的:在程序第一次運行購買和下載後,客戶端向服務器發送其MAC地址。然後php使用mac地址來加密一個txt文件,這個文件實際上是一個包含所有javscript的html文件(基本上是程序的其餘部分),然後存儲在客戶端。不需要進一步的互聯網連接來運行該程序。在每次啓動時,未加密的javascript將使用mac地址對存儲的文件進行解碼,然後通過htmlLoader.loadString的方式顯示它,這樣發佈的程序的每個副本將僅與其機器和該機器相連。不會在其他機器上打開。我知道它的可破解性,但它對我來說足夠了。除加密方法外,所有測試和工作都是如此。

我已經找到了在javascript和php中加密/解密但沒有密鑰的方法。關鍵是關鍵...

非常感謝提前。

+0

有可能是一些有用的東西:http://phpjs.org – 2010-11-20 03:51:56

回答

0

你會愛上RSA:http://en.wikipedia.org/wiki/RSA

Google快速搜索也產生了一個與您的問題幾乎完全相同的問題:http://www.sematopia.com/2008/10/rsa-encrypting-in-javascript-and-decrypting-in-php/

基本上,你想要做東西從MAC地址派生一個公鑰,因爲它是唯一的共享信息。然而,這很容易破解(所有攻擊者需要的是客戶端的MAC地址,如果他們使用WiFi,這個地址很容易獲得,並且地址幾乎是靜態的)。

+0

看着你發佈的鏈接,看起來像我需要從PHP到JavaScript的反向,對於比密碼更大的文本塊。另外我不需要公鑰/私鑰,只需要一個密鑰。我想我可以讓它在兩者之間的邏輯差異。我甚至不需要創建密鑰,只需使用mac地址即可。 – jason 2010-11-20 05:01:00

+2

這是不對稱加密的不恰當使用 – rook 2010-11-20 18:25:03

0

不僅僅是'a'鍵,它將是該文件的唯一關鍵。這是一個離線程序,每個下載都是爲該計算機加密的。是的,擁有該程序有效副本的攻擊者可以提取信息。如果在另一臺計算機上存在無效副本,則該mac地址將不起作用。這不是爲了在下載過程中保護,而是讓非代碼閱讀用戶無法將程序複製到另一臺計算機上,這對於該項目來說是足夠安全的。沒有人試圖保護我們在這些論壇上提供建議的同一個人的計劃。如果提取信息並重寫代碼以運行它,它將很快過時。在程序更新時,使用相同的方法,給定的MAC地址將被驗證服務器端,只允許2個完全相同的更新。但感謝您的RSA的信息,我即將嘗試它

相關問題