如何在文件传输中加密

denycheng 2004-04-05 08:48:40
我在做即时通讯中的文件传输,请问如何实现加密?
...全文
199 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
khpcg 2004-08-30
  • 打赏
  • 举报
回复
什么文件都可以加密和解密
khpcg 2004-08-30
  • 打赏
  • 举报
回复
using System;
using System.Threading;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Security.Cryptography;
using System.IO;

namespace UDPChat
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{



//private static string Key1="!i~6oxli@]t2K'y$";
//private static string Iv1="~x7Oq{6+ql@#VI$";
private static byte[] Iv=new byte[16];
private static byte[] Key=new byte[16];
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{

//
// TODO: 在此处添加代码以启动应用程序
//
Stream stringkey=new FileStream("c:\\Networking\\Streams\\MyStreamKey1.txt",FileMode.Open,FileAccess.Read);
BinaryReader brK=new BinaryReader(stringkey);
int endOfFileK;
int m=0;

do
{
endOfFileK=brK.PeekChar();
if(endOfFileK!=-1)
{

//keyOne[m]=Convert.ToByte(brK.ReadUInt16());
Key[m]=brK.ReadByte();
Console.WriteLine("Key[{0}]={1}",m,Key[m]);
m++;
//Console.WriteLine("m={0}",m);

}
}
while(endOfFileK!=-1);
Stream stringkey1=new FileStream("c:\\Networking\\Streams\\MyStreamIv1.txt",FileMode.Open,FileAccess.Read);
BinaryReader brK1=new BinaryReader(stringkey1);
int endOfFileK1;
int m1=0;

do
{
endOfFileK1=brK.PeekChar();
if(endOfFileK1!=-1)
{

//keyOne[m]=Convert.ToByte(brK.ReadUInt16());
Iv[m]=brK1.ReadByte();
Console.WriteLine("Iv[{0}]={1}",m1,Iv[m1]);
m1++;
//Console.WriteLine("m={0}",m);

}
}
while(endOfFileK1!=-1);
encryptData();
decryptData();


}



static void encryptData()
{
//Create cipher file stream
FileStream fs=new FileStream("c:\\Networking\\Streams\\MyStreamCipher",FileMode.Create);
//Create the instance of cipher
RijndaelManaged RMCrypto=new RijndaelManaged();
//cipher and output
CryptoStream cs=new CryptoStream(fs,RMCrypto.CreateEncryptor(Key,Iv),CryptoStreamMode.Write);
FileStream fsIn=new FileStream("c:\\Networking\\Streams\\诺丁山\\CD1.rmvb",FileMode.Open);
int datal;
while((datal=fsIn.ReadByte())!=-1)
cs.WriteByte((byte)datal);
//close
fsIn.Close();
cs.Close();
fs.Close();
}

static void decryptData()
{
FileStream fs=new FileStream("c:\\Networking\\Streams\\MyStreamCipher",FileMode.Open);
RijndaelManaged RMCrypto=new RijndaelManaged();
CryptoStream cs=new CryptoStream(fs,RMCrypto.CreateDecryptor(Key,Iv),CryptoStreamMode.Read);
FileStream fsOut=new FileStream("c:\\Networking\\Streams\\MyStreamCipherPlain",FileMode.Create);
int datal;
while((datal=cs.ReadByte())!=-1)
fsOut.WriteByte((byte)datal);
fsOut.Close();
cs.Close();
fs.Close();
}
}
}
sdav 2004-04-06
  • 打赏
  • 举报
回复
现在有一种方法可以直接读DES加密的数据,不太牢靠,建议使用RSA
xiaowangtian 2004-04-06
  • 打赏
  • 举报
回复
using System; using System.IO;
using System.Security.Cryptography;
using System.Text;
class FileEncrypt
{
public static Byte[] ConvertStringToByteArray(String s)
{
return (new UnicodeEncoding()).GetBytes(s);
}
public static void Main()
{
//创建文件流
FileStream fs = new FileStrea("EncryptedFile.txt",FileMode.Create,FileAccess.Write);
Console.WriteLine("输入一些要存储在加密文件中的文本::");
String strinput = Console.ReadLine(); Byte[] bytearrayinput=ConvertStringToByteArray(strinput);
//具有随机密钥的 DES 实例
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
//从此实例创建 DES 加密器
ICryptoTransform desencrypt = des.CreateEncryptor();
//创建使用 des 加密转换文件流的加密流
CryptoStream cryptostream = new CryptoStream(fs,desencrypt,CryptoStreamMode.Write);
//写出 DES 加密文件
cryptostream.Write(bytearrayinput,0,bytearrayinput.Length);
cryptostream.Close();
//创建文件流以读回加密文件
FileStream fsread = new FileStream("EncryptedFile.txt",FileMode.Open,FileAccess.Read);
//从此 des 实例创建 DES 解密器
ICryptoTransform desdecrypt = des.CreateDecryptor();
//创建加密流集合以便对传入的字节进行读取并执行 des 解密转换
CryptoStream cryptostreamDecr = new CryptoStream(fsread,desdecrypt,CryptoStreamMode.Read);
//输出已解密文件的内容
Console.WriteLine( (new StreamReader(cryptostreamDecr, new UnicodeEncoding())).ReadToEnd() );
Console.WriteLine ();
Console.WriteLine ("按 Enter 键继续...");
Console.ReadLine(); } }
chrch 2004-04-05
  • 打赏
  • 举报
回复
用SSL

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧