如何给一个文件加密

aaronlao 2006-11-02 01:56:49
我想用一个文本文件存储一些用户的信息,一般情况下双击是打不开的,只有在程序中才能读出其内容,请问怎么实现?

分不多,嫌不够再加!

也可发邮件给源码我:looyoojoo@yahoo.com.cn
...全文
500 12 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
mfjustlove 2006-11-17
  • 打赏
  • 举报
回复
学习
chnama 2006-11-02
  • 打赏
  • 举报
回复
那是你文件分配表出错了
aaronlao 2006-11-02
  • 打赏
  • 举报
回复
我的硬盘是NTFS格式的,
相应的文件夹-》属性,就找不到"安全"了
lizhizhe2000 2006-11-02
  • 打赏
  • 举报
回复
Re:但是我发现我"E:\我接收到的文件"这个文件夹就有这样的效果,一打开就弹出"无法打开文件夹"之类的错误,重装系统还是不行,且不能删除,只有放在那不管了~~

你的硬盘是NTFS格式的吧,而且你的当前怅号无操作此文件夹的权限
相应的文件夹-》属性-》安全-》添加你的怅号就可以了
aaronlao 2006-11-02
  • 打赏
  • 举报
回复
六点下班,下班前还没有回复就结帖了~~
aaronlao 2006-11-02
  • 打赏
  • 举报
回复
但是我发现我"E:\我接收到的文件"这个文件夹就有这样的效果,一打开就弹出"无法打开文件夹"之类的错误,重装系统还是不行,且不能删除,只有放在那不管了~~
zhangzengping 2006-11-02
  • 打赏
  • 举报
回复
好想不能, 文件独立于程序, 系统文件都能delete!

没有记事本打不开的程序。 因为都是读到内存, 显示出来, 程序只是一个编译器而已!

硬盘 到内存 到 编译器 都是独立的!谁也关了谁。


aaronlao 2006-11-02
  • 打赏
  • 举报
回复
谢谢各位,我希望的是在双击加密的文件时弹出"无法打开文件"之类的错误框,且无法删除,能做到吗?
viena 2006-11-02
  • 打赏
  • 举报
回复
EncryptFile方法加密
DecryptFile方法解密
参数分别为,输入文件路径,输出文件路径,密钥
viena 2006-11-02
  • 打赏
  • 举报
回复
加密解密文件
GenerateKey方法用于生成密钥,也可以人工指定,但注意解密用的密钥必须与加密时一致(如果自动生成要保存一下)
密钥必须是8个字节(64位二进制),可以用8个单字节字符(半角英文、数字、符号等)

using System;
using System.IO;
using System.Security;
using System.Security.Cryptography;
using System.Runtime.InteropServices;
using System.Text;

namespace csdn.viena
{
public class Encrypt
{
static string GenerateKey()
{
DESCryptoServiceProvider desCrypto = (DESCryptoServiceProvider)DESCryptoServiceProvider.Create();
return ASCIIEncoding.ASCII.GetString(desCrypto.Key);
}

static void EncryptFile(string sInputFilename,string sOutputFilename,string sKey)
{
FileStream fsInput = new FileStream(sInputFilename,FileMode.Open,FileAccess.Read);
FileStream fsEncrypted = new FileStream(sOutputFilename,FileMode.Create,FileAccess.Write);
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
ICryptoTransform desencrypt = DES.CreateEncryptor();
CryptoStream cryptostream = new CryptoStream(fsEncrypted,desencrypt,CryptoStreamMode.Write);

byte[] bytearrayinput = new byte[fsInput.Length];
fsInput.Read(bytearrayinput, 0, bytearrayinput.Length);
cryptostream.Write(bytearrayinput, 0, bytearrayinput.Length);
cryptostream.Close();
fsInput.Close();
fsEncrypted.Close();
}

static void DecryptFile(string sInputFilename,string sOutputFilename,string sKey)
{
DESCryptoServiceProvider DES = new DESCryptoServiceProvider();
DES.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
DES.IV = ASCIIEncoding.ASCII.GetBytes(sKey);

FileStream fsread = new FileStream(sInputFilename,FileMode.Open,FileAccess.Read);
ICryptoTransform desdecrypt = DES.CreateDecryptor();
CryptoStream cryptostreamDecr = new CryptoStream(fsread,desdecrypt,CryptoStreamMode.Read);
StreamWriter fsDecrypted = new StreamWriter(sOutputFilename);
fsDecrypted.Write(new StreamReader(cryptostreamDecr).ReadToEnd());
fsDecrypted.Flush();
fsDecrypted.Close();
}

}
}
lizhizhe2000 2006-11-02
  • 打赏
  • 举报
回复
已经发给你了,你可以参照一下
lytone52 2006-11-02
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20060114/15/4516706.html
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2006-11-02 01:56
社区公告

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