Based on計算器上我已經創建了crpyts和解密來自HTML形式的文本頁面的一些例子。但不知何故,有時候這種情況有時候並不常見,通常情況並非如此。mcrypt_encrypt或mcrypt_decrypt沒有基本的HTML表單工作
這是怎麼發生的? htmlencode會在發佈過程中修改密鑰嗎?我如何解決這個問題? 我應該使用base64嗎?
<?php
$key_size = mcrypt_get_key_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CFB);
$encryption_key = openssl_random_pseudo_bytes($key_size, $strong);
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CFB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM); // 16 bytes output
if($_POST){
$iv = $_POST["iv"];
$encryption_key = $_POST["key"];
$string = $_POST["msg"];
if($_POST["do"]=="encrypt"){
echo "crypted";
$result = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $encryption_key, $string, MCRYPT_MODE_CFB, $iv);
}else{
echo "de-crypted";
$result = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $encryption_key, $string, MCRYPT_MODE_CFB, $iv);
}
}
?>
<div class="main" id="main">
<form method="POST" action="">
<input type="text" value="<?php echo $iv; ?>" name="iv"/> <br/>
<input type="text" value="<?php echo $encryption_key; ?>" name="key"/><br/>
<textarea name="msg"><?php echo $result; ?></textarea><br/>
<select name="do"><option>encrypt</option><option>decrypt</option></select><br/>
<input type="submit" value="GO"/>
</form>
</div>
活生生的例子可以發現@http://lab.ohshiftlabs.com/crypt/
[Rü確保ü已安裝的mcrypt模塊 – user3004356
否則,我認爲它想返回錯誤,但肯定的,根據它安裝的phpinfo; mcrypt的支持\t啓用 mcrypt_filter支持\t啓用 版本2.5.8 \t阿比 沒有支持的密碼\t投-128 GOST的Rijndael-128的twofish ARCFOUR鑄256 loki97的Rijndael-192 saferplus喚醒河豚-compat的DES rijndael- 256蛇xtea blowfish enigma rc2 tripledes 支持的模式\t cbc cfb ctr ecb ncfb nofb ofb stream – siniradam
您正在使用哪個操作系統...嘗試運行這個'<?php phpinfo();?>'。這將顯示我在本地嘗試的細節 – user3004356