Oppure

Loading
14/04/09 9:08
jaco94++
salve a tt

qualcuno sa mica come si può criptare un file? per il testo ci sono riuscito con questo codice che molti usano :

public static string Encode(string text, string chiave)
{
RijndaelManaged rjm = new RijndaelManaged();
rjm.KeySize = 256;
rjm.BlockSize = 256;
rjm.Key = ASCIIEncoding.ASCII.GetBytes(chiave);
rjm.IV = ASCIIEncoding.ASCII.GetBytes(standard);
byte[] input = Encoding.UTF8.GetBytes(text);
byte[] output = rjm.CreateEncryptor().TransformFinalBlock(input, 0, input.Length);
return Convert.ToBase64String(output);
}

lo stesso metodo è possibile adattarlo ad un file ? o per un file e diverso ??
gra in anticipo
aaa
14/04/09 9:15
andrea.b89
beh, molto semplicemente puoi leggere in maniera binaria un file con l'oggetto BinaryReader e dopo aver letto i byte cripti ciò che hai letto e ricrei il file.

concenttualmente si può fare così ;)
aaa
14/04/09 12:05
jaco94++
openFileDialog1.ShowDialog();
FileStream cripting = File.Open(openFileDialog1.FileName, FileMode.OpenOrCreate);
Rijndael rija = Rijndael.Create();
rija.KeySize = 256;
rija.BlockSize = 256;
string chiave = textBox1.Text;
rjm = ASCIIEncoding.ASCII.GetBytes(chiave);
rjm1 = ASCIIEncoding.ASCII.GetBytes(standard);
CryptoStream cry = new CryptoStream(cripting, rija.CreateEncryptor(rjm, rjm1), CryptoStreamMode.Write);
StreamWriter st = new StreamWriter(cry);

ho provato in questo modo ma non riesco a criptare un file binario come posso fare cos'è che nn va ?
Ultima modifica effettuata da jaco94++ 14/04/09 18:12
aaa
14/04/09 18:46
jaco94++
Quel codice mi da come errore che il file è aperto da un altro programma.
funziona se devo criptare del testo in un txt ma un file binario non riesco proprio a criptarlo...
come faccio ?
aaa
15/04/09 8:13
Il Totem
Il file lo hai aperto tu e poi non l'hai chiuso (FileStream e CryptoStream). Funziona per qualsiasi tipo di file, smettetela di fare discriminazioni :rotfl:
aaa
15/04/09 12:13
jaco94++
Non riesco proprio ho provato in tt i modi :d:d ma continua a darmi un dannato errore di apertura del file perche utilizzato da un altro processo ( nn e verooo!!!) nn si muove da questa riga:

FileStream cripting = File.Open(openFileDialog1.FileName, FileMode.OpenOrCreate);


allego un immagine
aaa
15/04/09 19:06
Il Totem
Il computer non ha mai torto. Il file è in effetti in uso da un altro processo, che potrebbe anche essere il tuo se ti dimentichi di chiudere il file o se usi del codice non a prova di bomba. Se stai usando un hex editor, chiudilo. Posta il resto del codice.
aaa
15/04/09 20:19
jaco94++
purtroppo nn uso hex editor o altro nn uso nulla quel file e li da una vita e nn lo mai aperto appena accendo il pc e provo subito mi da lo stesso errore eppure nn viene aperto da nulla se controllo nn e in memoria da nessuna parte il codice completo e sepre lui ... in un tasto nel form :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Security.Cryptography;

namespace FileCoding
{
public partial class FileCoding : Form
{
public FileCoding()
{
InitializeComponent();
}


#region variabili vitali

private const string standard = ("cioeè°òd893=d?prnc+*ieI5TH-e_39X";);
byte []rjm = { };
byte[] rjm1 = { };

#endregion

private void button1_Click(object sender, EventArgs e)
// lui mi da problemi
{
openFileDialog1.ShowDialog();
FileStream cripting = File.Open(openFileDialog1.FileName, FileMode.OpenOrCreate);
cripting.Close();
Rijndael rija = Rijndael.Create();
rija.KeySize = 256;
rija.BlockSize = 256;
string chiave = textBox1.Text;
rjm = ASCIIEncoding.ASCII.GetBytes(chiave);
rjm1 = ASCIIEncoding.ASCII.GetBytes(standard);
CryptoStream cry = new CryptoStream(cripting, rija.CreateEncryptor(rjm, rjm1), CryptoStreamMode.Write);
StreamWriter write = new StreamWriter(cry);

}

private void button2_Click(object sender, EventArgs e)
{

}

private void button3_Click(object sender, EventArgs e)
{
this.Close();
}

private void FileCoding_Load(object sender, EventArgs e)
{

}
}
}
:d:d
aaa