voilà mon souci :
je souhaite crypter des données contenues dans un fichier texte, puis remplacer les données en clair dans le fichier par celles cryptées.
j'ai effectué plusieurs tests :
j'ouvre mon fichier texte (avec fopen)
je crypte (avec AES)
j'enregistre (avec fputs)
si j'ouvre le fichier avec w+ (lecture écriture en remplacement) mais que je remplace le texte par un autre sans crypter, ça fonctionne.
si j'ouvre le fichier avec r+(lecture écriture) et que je crypte les données, elles se placent à la suite des données en clair.
si j'ouvre le fichier avec w+ et que je crypte les données, j'ai une erreur "invalid data" qui provient de mon fichier aes.
comment crypter les données ET remplacer les données en clair ?
je vous donne un peu de code :
Code : Tout sélectionner
include 'AES.php';
if (!$fp = fopen('example-test2.txt',"w+")) {
// si je met // if (!$fp = fopen('example-test2.txt',"r+")) { // à la place, ça met le code crypté à la suite.
echo "Echec de l'ouverture du fichier";
exit;
}
else {
while(!feof($fp)) {
// je récupère une ligne
$Ligne = fgets($fp,4096);
// je stocke l'ensemble des lignes dans une variable
$Fichier .= $Ligne;
// j'encrypte avec AES
$imputKey = "encryptor key";
$blockSize = 256;
$aes = new AES($Fichier, $imputKey, $blockSize);
$enc = $aes->encrypt();
$aes->setData($enc);
}
// puis je copie les nouvelles données
fputs($fp, $enc);
fclose($fp); // je ferme le fichier
}
LF