PHP加密和重定向错误/问题


PHP mcrypt and redirect errors/problems

我有两个问题

1)我在使用mcrypt解密信息时遇到问题。

加密码:

$username = mcrypt_ecb(MCRYPT_SAFER128, "*password*", $username, MCRYPT_ENCRYPT);
$password = mcrypt_ecb(MCRYPT_SAFER128, "*password*", $password, MCRYPT_ENCRYPT);
echo "
<script type='"text/javascript'">
<!--
document.cookie = 'username=$username; expires=0; path=/'
document.cookie = 'password=$password; expires=0; path=/'
//-->
</script>
";

这似乎工作良好。我检查了浏览器中的cookie,其中(没有mcrypt语句)有用户名和密码,它们看起来像胡言乱语。我用这个来解密:

$username = $_COOKIE['username'];
$password = $_COOKIE['password'];
$username = mcrypt_ecb(MCRYPT_SAFER128, "*password*", $username, MCRYPT_DECRYPT);
$password = mcrypt_ecb(MCRYPT_SAFER128, "*password*", $password, MCRYPT_DECRYPT);

并得到这个错误:

警告:mcrypt_cbc() [function。mcrypt-cbc]:第14行*文件路径*模块初始化失败

2)我试图做一个重定向使用php。我使用javascript,但用户可以关闭它,然后重定向将不起作用。所以我使用了下面的代码:

header('Location: *URL*');

,我得到这个错误:

警告:无法修改报头信息-报头已经由(输出开始于*文件路径和行号*)在*文件路径*发送到第31行

我试着搜索这个,一堆人似乎有这个问题,但我似乎不能让它工作。我有php代码以上的任何HTML代码,但我仍然得到的问题。

1.) McRypt_ecb的输出不是字符串安全的。base64加密后编码,解密前解码

2.)头必须在任何其他文本之前发送-这意味着不仅没有"echo","print*"等,而且在你的文件中标签之外没有文本。常见的错误是.php文件

开头有空格或BOM标记。