jaco94++ (Normal User)
Expert
Messaggi: 203
Iscritto: 22/10/2008
|
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
|
|
andrea.b89 (Ex-Member)
Pro
Messaggi: 129
Iscritto: 03/03/2009
|
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ì
|
|
jaco94++ (Normal User)
Expert
Messaggi: 203
Iscritto: 22/10/2008
|
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++ il 14/04/2009 alle 20:12 |
|
jaco94++ (Normal User)
Expert
Messaggi: 203
Iscritto: 22/10/2008
|
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 ?
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
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
|
|
jaco94++ (Normal User)
Expert
Messaggi: 203
Iscritto: 22/10/2008
|
Non riesco proprio ho provato in tt i modi 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
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
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.
|
|
jaco94++ (Normal User)
Expert
Messaggi: 203
Iscritto: 22/10/2008
|
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)
{
}
}
}
|
|
Il Totem (Admin)
Guru^2
Messaggi: 3635
Iscritto: 24/01/2006
|
Ma hai un computer posseudo? E' teoricamente impossibile, perciò bisogna fare altri tentativi. Prova a cambiare il file in questione e vedere se dà lo stesso errore. Prova a guardare nei dettagli dell'eccezione se riesci ad ottenere qualche informazione in più. Insomma, dimostra se questo errore è congenito oppure è di circostanza
|
|