2009年1月14日 星期三

[php]MCrypt 範例 加解密

MCrypt 範例

這裡是一個使用 MCrypt 加密和解密一個文件的範例,程式會把檔案 textfile.txt 加密成為 encrypted.txt,然後把這個檔案解密成為 newfile.txt。

// Listing file_encrypt.php

<?php
$file = 'textfile.txt';
$initial_contents = file_get_contents($file);

if($initial_contents) {

// 這個函式開啟 MCrypt 模組,並設定所使用的運作模式
$td = mcrypt_module_open('tripledes', '', 'ecb', '');

// 從一個隨機來源建立一個初始向量
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);

// 這個函式初始化所有加密所需的緩衝器
mcrypt_generic_init($td, $initial_contents, $iv);

// 這個函式加密數據
$encrypted_data = mcrypt_generic($td, $initial_contents);

$encrypted_file = @fopen('encrypted.txt','w');
$ok_encrypt = @fwrite($encrypted_file,$encrypted_data);
if($ok_encrypt) {
echo '成功建立密文檔案 encrypted_file.txt!!!';
}
else {
echo ("檔案寫入失敗!");
}

@fclose($encrypted_file);

mcrypt_generic_init($td, $initial_contents, $iv);

// 這個函式解密數據
$p_t = mdecrypt_generic($td, $encrypted_data);

$newfile = @fopen('newfile.txt','w');
$ok_decrypt = @fwrite($newfile,$p_t);
if($ok_decrypt) {
echo '成功建立解密文件 newfile.txt!!!';
}
else{
echo ("檔案寫入失敗!");
}
@fclose($newfile);

// 這個函式為加密模組解除初始化
mcrypt_generic_deinit($td);

// 關閉加密模組
mcrypt_module_close($td);
}

?>

【下列文章您可能也有興趣】

沒有留言: