我像这样使用mcrypt
<?php
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$key = "This is a very secret key";
$text = "Meet me at 11 o'clock behind the monument.";
echo strlen($text) . "\n";
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
echo strlen($crypttext) . "\n";
?>这可以很好地加密某些文本。但是,现在我需要将其保存到一个文件,并加密整个文件。使用php5。
发布于 2010-11-09 04:46:30
只要做一个小小的改变就行了:
<?php
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$key = "This is a very secret key";
$text = file_get_contents('path/to/your/file');
echo strlen($text) . "\n";
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_ECB, $iv);
file_put_contents('path/to/your/file', $crypttext);
?>如果文件确实太大,请将其分解为128的倍数的块,并对每个块进行加密。
发布于 2010-11-09 04:46:24
最简单的解决方案是只读入文件,执行加密,然后将文件写回。
如果您正在处理非常大的文件,这将遇到内存问题,但对于较小的文件,它允许您在不需要任何额外代码的情况下执行此操作。
https://stackoverflow.com/questions/4127874
复制相似问题