文件加密&字符加密的代码

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

///<summary>文件加密类 使用DES加密文件流</summary>

///<param>desKey: DES的密钥;desIV: DES向量</param>

class encrypfile{

public byte[] desKey;

public byte[] desIV;

public encrypfile(byte[] inputKey,byte[] inputIV){

desKey=inputKey;

desIV=inputIV;

}

///<summary>加密主方法</summary>

///<param>inName:被加密文件名;outName: 加密后文件名</param>

public void begintoencry(string inName,string outName){

FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);

FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);

fout.SetLength(0);

byte[] bin = new byte[100]; //This is intermediate storage for the encryption.

long rdlen = 0; //This is the total number of bytes written.

long totlen = fin.Length; //This is the total length of the input file.

int len; //This is the number of bytes to be written at a time.

DES des = new DESCryptoServiceProvider();

CryptoStream encStream = new CryptoStream(fout, des.CreateEncryptor(desKey, desIV), CryptoStreamMode.Write);

while(rdlen < totlen)

{

len = fin.Read(bin, 0, 100);

encStream.Write(bin, 0, len);

rdlen = rdlen + len;

}

encStream.Close();

fout.Close();

fin.Close();

}

}

加密字符流

//pToEncrypt为需要加密字符串,sKey为密钥

public string Encrypt(string pToEncrypt, string sKey)

{

DESCryptoServiceProvider des = new DESCryptoServiceProvider();

//把字符串放到byte数组中

byte[] inputByteArray = Encoding.Default.GetBytes(pToEncrypt);

//建立加密对象的密钥和向量

des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);

des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);

MemoryStream ms = new MemoryStream();

CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(),CryptoStreamMode.Write);

cs.Write(inputByteArray, 0, inputByteArray.Length);

cs.FlushFinalBlock();

StringBuilder ret = new StringBuilder();

foreach(byte b in ms.ToArray())

{

ret.AppendFormat("{0:X2}", b);

}

return ret.ToString();

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航