我應該寫一個PHP腳本來解密Blowfish加密數據。如何解密在PHP中使用Blowfish算法?
我收到的用於解密的數據由另一個應用程序加密(我無法訪問它)。
當我使用JavaScript腳本(blowfish.js)檢查數據時,數據解密正常。
我該如何解密php中的數據?
我已經嘗試過PHP中的mcrypt
函數。如果我使用相同的代碼進行加密和解密,代碼工作正常。如果我解密一個加密的代碼(在另一個應用程序),它會給垃圾。
不知道要設置的模式。
任何人都可以在下面的代碼或任何PHP BlowFish代碼建議不使用mcrypt?
<?php
class Encryption
{
static $cypher = 'blowfish';
static $mode = 'cfb';
static $key = '12345678';
public function encrypt($plaintext)
{
$td = mcrypt_module_open(self::$cypher, '', self::$mode, '');
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
mcrypt_generic_init($td, self::$key, $iv);
$crypttext = mcrypt_generic($td, $plaintext);
mcrypt_generic_deinit($td);
return $iv.$crypttext;
}
public function decrypt($crypttext)
{
$plaintext = "";
$td = mcrypt_module_open(self::$cypher, '', self::$mode, '');
$ivsize = mcrypt_enc_get_iv_size($td);
$iv = substr($crypttext, 0, $ivsize);
$crypttext = substr($crypttext, $ivsize);
if ($iv)
{
mcrypt_generic_init($td, self::$key, $iv);
$plaintext = mdecrypt_generic($td, $crypttext);
}
return $plaintext;
}
}
$encrypted_text = Encryption::encrypt('this text is unencrypted');
echo "ENCRY=".$encrypted_text;echo "<br/>";
////I am using this part(decryption) coz data already encryption
// Encrypted text from app
$encrypted_text = '29636E7ADA7081E7F5D73121C45E20D5';
// Decrypt text
$decrypted_text = Encryption::decrypt($encrypted_text);
echo "ENCRY=".$decrypted_text;echo "<br/>";
?>
謝謝你的信息和建議。我會查一下。 – Sangam254 2011-04-07 12:58:19