2013-04-23 64 views
0

目標:我打算在PHP中加密JSON響應,並且一旦android應用程序收到該響應,它就會對其進行解密。如何在Java中解密來自PHP的加密響應?

我能找到在PHP的加密和解密功能:

<?php 
    function simple_encrypt($text) 
    { 
    $salt = "anything"; 
     return trim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $salt, $text, MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND)))); 
    } 

    function simple_decrypt($text) 
    { 
     $salt = "anything"; 
     return trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $salt, base64_decode($text), MCRYPT_MODE_ECB, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND))); 
    } 
?> 

(我實際上並不需要的simple_decrypt功能,我只是測試它什麼我確實需要簡單地是加密的服務器端和解密在客戶端(我的Android應用程序))

所以我需要一個函數類似於simple_decrypt,但用Java編寫,所以我可以解密我的迴應。

我不知道該怎麼做,因爲我對加密/解密很陌生。我希望這裏的一些專家能夠指導我找到合適的解決方案。

+0

不會通過ssl傳輸更容易 – 2013-04-23 22:50:43

+0

我正在使用ssl。但我不知道我想更多地加密它。無用? – Alex 2013-04-23 22:53:00

+1

好像過度殺死再次加密 – 2013-04-23 22:54:56

回答

0

Here is some PHP/Java code I found - 這是對您的PHP代碼的改進,因爲它使用的密碼反饋模式(CFB)比ECB(電子密碼本)更安全。要在Java中使用256位AES,您需要安裝位於this page底部的Java加密擴展。請注意,PHP和Java代碼都需要使用相同的初始化向量 - 這應該對每個密文都是唯一的,但可以以明文形式傳輸。

如果您使用SSL,那麼這不是必需的 - 如果數據從PHP到數據庫/文件/其他持久存儲,然後到Java,則只需執行此操作。