写一个对文本文件加密的程序和一个解密程序

写一个对文本文件加密的程序和一个解密程序,第1张

#include <stdlibh>

#include<stdioh>

#define x 4//密钥

/定义加密函数/

int jiami()

{

FILE fp1,fp2; //定义函数指针

char filename[50],ch;

printf("请输入要加密的文件:\n");

scanf("%s",filename) ;

fp1=fopen(filename,"r");

if(fp1==NULL)

{

printf("\n警告!打开文件时出错!\n");

return 0;

} //打开文件失败

// printf("原文件为:\n");

fp2=fopen("jiamihou","w");//新建存放加密后数据的文件jiamihou

if(fp2==NULL)

{

printf("\n警告!打开文件时出错!\n");

return 0;

}

while(!feof(fp1)) //没有到达文件尾,继续读入字符

{

ch=fgetc(fp1); //正确读出原文件

ch=ch+x;//凯萨加密法

//putchar(ch);//显示加密后的文件

fputc(ch,fp2); //将加密后的字符放入文件jiamihou中

}

printf("加密成功!\n");

fclose(fp1);

fclose(fp2);

}

/定义解密函数/

int jiemi()

{

FILE fp1,fp2;

char filename[50],ch;

char y;

printf("\n");

printf("请输入要解密的文件:\n");

scanf("%s",filename) ; //要解密的文件名

fp1=fopen(filename,"r");

if(fp1==NULL)

{

printf("\n警告!打开文件时出错!\n");

return 0;

}//打开文件失败

fp2=fopen("jiemihou","w");//新建存放解密后数据的文件jiemihou

if(fp2==NULL)

{

printf("\n警告!打开文件时出错!\n");

return 0;

}

do

{

printf("请输入密码:\n");

scanf("%d",&y) ; //密码

}while(y!=x);

while(!feof(fp1)) //没有到达文件尾,继续读入字符

{

ch=fgetc(fp1); //正确读出原文件

ch=ch-y;//凯萨解密法

//putchar(ch);//显示解密后的文件

fputc(ch,fp2); //将解密后的字符放入文件jiemihou中

}

printf("解密成功!\n");

fclose(fp1);

fclose(fp2);

}

/定义打开文件/

int display()

{

FILE fp;

char filename[50],ch;

printf("\n");

printf("请输入要打开显示的文件:\n");

scanf("%s",filename) ; //要显示的文件名

fp=fopen(filename,"r");

if(fp==NULL)

{

printf("\n警告!打开文件时出错!\n");

return 0;

}//打开文件失败

while(!feof(fp)) //没有到达文件尾,继续读入字符

{

ch=fgetc(fp); //正确读出原文件

putchar(ch);//显示解密后的文件

}

printf("\n");

fclose(fp);

}

/主函数/

void main()

{

int n;

do

{

printf(" *** 作方式如下:\n");

printf("1为加密 *** 作\n");

printf("2为解密 *** 作\n");

printf("3为显示 *** 作\n");

printf("0为退出 *** 作\n");

printf("");

printf("\n请选择您的 *** 作:\n");

scanf("%d",&n);

switch(n)

{

case 0:

break;

case 1:

printf("\n您选择了加密 *** 作\n");

jiami();

break;

case 2:

printf("\n您选择了解密 *** 作\n");

jiemi();

break;

case 3:

printf("您选择了显示文件 *** 作\n");

display();

break;

default:

printf("请在0-3之间选择\n");

}

}while(n!=0);

printf("您选择了退出 *** 作\n");

system("pause");//系统暂停,输出“按任意键继续”包含在<stdlibh>中

}

问题一:怎样把我的文档加密?详细一点。。。 给文档加密,我使用的是文件夹加密超级大师。

文件夹加密超级大师支持所有windows系统,可以加密文件夹,加密文件,保护磁盘和数据粉碎,使用起来非常方便。

在需要加密的文件和文件夹上单击鼠标右键选择加密就可以了。

解密时只要双击加密的文件夹和文件,输入正确的密码就可以解密。

文件夹加密超级大师加密后的文件和文件夹可以防止删除、复制和移动。

相对于其他的文件夹加密软件和文件加密软件,功能和性能还有 *** 作都更加的出色。

并且有微软、360和金山的安全认证,是一款绝对安全的文件夹加密软件。

您可以到百度上下载文件夹加密超级大师来给您的文件和文件夹加密,看看使用效果怎么样?

问题二:如何给我的文档里面的一个文件加密 方法1最简单的如何给文件夹加密的方法就是利用 *** 作系统自带的功能来设置,就是EFS加密,这个EFS加密功能需要硬盘的分区格式是NTFS,如果有网友不是这个格式需要先转换一下。那文件夹怎么加密具体怎么 *** 作呢,首先选中需要加密的文件夹或文件,然后右击,选择“属性”,然后点击“高级”,选择“压缩或加密属性”中的“加密内容以便保护数据”,这个这个文件夹或文件就设置了EFS加密,加密后的文件夹或文件的名字会变成蓝色,这个时候电脑上其他的用户是无法查看的;

方法2有人说上面这种方法还不够安全,如果有人用我的账户进入了电脑就可以查看文件夹中的内容了,下面我们就来教大家用第三方工具加密文件夹。可以利用压缩工具给文件夹加密码,大家常见的压缩工具有WinRAR,7-ZIP等等,这些工具都可以对文件或文件夹加密码。下面我们就以WinRAR为例来教大家文件夹怎么加密,在需要加密的文件或文件夹上右击,选择“添加到压缩文件”,然后选择“高级”标签页,点击“设置密码”,在d出的对话框中输入密码,就可以对相应的文件或文件夹进行加密。

方法3除了以上两种如何给文件夹加密码的方法外,网上还有不少第三方的文件夹加密工具,但是这类工具通常都是试用版,用一段时间就不能使用了,所以这里我们就不再介绍这类软件了。网友可以观看相关网站的介绍就可以了。

问题三:怎样在电脑上“我的文档”里设置密码??? 一、加密文件或文件夹

步骤一:打开Windows资源管理器。

步骤二:右键单击要加密的文件或文件夹,然后单击“属性”。

步骤三:在“常规”选项卡上,单击“高级”。选中“加密内容以便保护数据”复选框

在加密过程中还要注意以下五点:

1要打开“Windows 资源管理器”,请单击“开始→程序→附件”,然后单击“Windows 资源管理器”。

2只可以加密NTFS分区卷上的文件和文件夹,FAT分区卷上的文件和文件夹无效。

3被压缩的文件或文件夹也可以加密。如果要加密一个压缩文件或文件夹,则该文件或文件夹将会被解压。

4无法加密标记为“系统”属性的文件,并且位于systemroot目录结构中的文件也无法加密。

5在加密文件夹时,系统将询问是否要同时加密它的子文件夹。如果选择是,那它的子文件夹也会被加密,以后所有添加进文件夹中的文件和子文件夹都将在添加时自动加密。

二、解密文件或文件夹

步骤一:打开Windows资源管理器。

步骤二:右键单击加密文件或文件夹,然后单击“属性”。

步骤三:在“常规”选项卡上,单击“高级”。

步骤四:清除“加密内容以便保护数据”复选框。

同样,我们在使用解密过程中要注意以下问题:

1要打开“Windows资源管理器”,请单击“开始→程序→附件”,然后单击“Windows资源管理器”。

2在对文件夹解密时,系统将询问是否要同时将文件夹内的所有文件和子文件夹解密。如果选择仅解密文件夹,则在要解密文件夹中的加密文件和子文件夹仍保持加密。但是,在已解密文件夹内创立的新文件和文件夹将不会被自动加密。

以上就是使用文件加、解密的方法!而在使用过程中我们也许会遇到以下一些问题,在此作以下说明:

1高级按钮不能用

原因:加密文件系统(EFS)只能处理NTFS文件系统卷上的文件和文件夹。如果试图加密的文件或文件夹在FAT或FAT32卷上,则高级按钮不会出现在该文件或文件夹的属性中。

解决方案:

将卷转换成带转换实用程序的NTFS卷。

打开命令提示符。

键入:Convert [drive]/fs:ntfs

(drive 是目标驱动器的驱动器号)

2当打开加密文件时,显示“拒绝访问”消息

原因:加密文件系统(EFS)使用公钥证书对文件加密,与该证书相关的私钥在本计算机上不可用。

解决方案:

查找合适的证书的私钥,并使用证书管理单元将私钥导入计算机并在本机上使用。

3用户基于NTFS对文件加密,重装系统后加密文件无法被访问的问题的解决方案(注意:重装Win2000/XP前一定要备份加密用户的证书):

步骤一:以加密用户登录计算机。

步骤二:单击“开始→运行”,键入“mmc”,然后单击“确定”。

步骤三:在“控制台”菜单上,单击“添加/删除管理单元”,然后单击“添加”。

步骤四:在“单独管理单元”下,单击“证书”,然后单击“添加”。

步骤五:单击“我的用户账户”,然后单击“完成”(如图2,如果你加密用户不是管理员就不会出现这个窗口,直接到下一步) 。

步骤六:单击“关闭”,然后单击“确定”。

步骤七:双击“证书――当前用户”,双击“个人”,然后双击“证书”。

步骤八:单击“预期目的”栏中显示“加密文件”字样的证书。

步骤九:右键单击该证书,指向“所有任务”,然后单击“导出”。

步骤十:按照证书导出向导的指示将证书及相关的私钥以PFX文件格式导出(注意:推荐使用“导出私钥”方式导出,这样可以保证证书受密码>>

问题四:我的文档怎么加密 可以通过对WORD文档加密做到 只能看 无法做任何修改

下面我给出几个加密的方法:

文件菜单设置:1、打开需要加密的Word文档。2、选“文件”的“另存为”,出现“另存为”对话框,在“工具”中选“常规选项”,出现“保存”选项卡。3、分别在“打开权限密码”和“修改权限密码”中输入密码(这两种密码可以相同也可以不同)。4、再次确认“打开权限密码”和“修改权限密码”。按“确定”退出“保存”选项卡。5、文件存盘。

由工具菜单设置:1、打开需要加密的Word文档。2、选“工具”菜单的“选项”命令,出现“选项对话框”。3、在“选项”对话框中选“保存”选项卡。4、分别在“打开权限密码”和“修改权限密码”中输入密码,点“确定”退出。5、将文件保存。

问题五:怎么给我的文档设置密码? 1:修改文件目录的属性。此法最简单,只要选中欲隐藏的目录,单击鼠标右键,选择“属性”,在“隐藏”属性复选框中打个“√”即可。这样,该目录就具有了隐藏属性。此法虽然最简单,但安全性最差,只要在“资源管理器”中,选择“查看”菜中的“文件夹选项”,再将其“查看”中的“隐藏文件”部分选为“显示所有文件”就可以将隐藏目录显示出来。

2:通过软件加密隐藏。Windows 下加密隐藏软件不少,如:Magic Folders、En crypt ed Magic Folders(简称EMF)等,都可以用来隐藏甚至加密目录。下面就简单简介绍一下 EMF的使用方法。首先安装EMF,在安装过程中生成一张密码盘, *** 作时插入该盘,EMF检测盘上的密码,并进入相应的账号,然后运行Magicexe程序会要你输入密码,这个密码就是以后进入EMF的密码。若想再次显示目录也必须输入这个密码。

问题六:电脑上我的文档怎么加密? 用文件夹加密超级大师加密电脑中重要的文件是最安全

文件夹加密超级大师

强大易用的加密软件,具有文件加密、文件夹加密、数据粉碎、彻底隐藏硬盘分区、禁止或只读使用USB设备等功能。

文件夹加密和文件加密时有最快的加密速度,加密的文件和加密的文件夹有最高的加密强度,并且防删除、防复制、防移动。

还有方便的加密文件夹和加密文件的打开功能(临时解密),让您每次使用加密文件夹或加密文件后不用重新加密!

实用的数据粉碎删除和硬盘分区彻底隐藏、禁止使用USB设备、只读使用U盘和移动硬盘等安全辅助功能使

文件夹加密超级大师成为一款不可思议的文件加密软件和文件夹加密软件。

问题七:在电脑里怎么给我的文档设置密码 你的是什么文档,有些文档是可以进行直接加密,不过容易被破解,比如WORD,word自带的加密方式是公用的。

如果是TXT格式,你就没办法直接加密了,这时候,你可以下载专贰的加密软件,体积很小的,加密后也很难被破解开。不过自己也要小心点,别自己忘记密码哦

问题八:如何给放在“我的文档”里的文件加密保护? 点击鼠标右键“属性”常规里面有个“高级”选项点击在这里可以加密

问题九:如何给我的文档文件夹解密,前几天我将加密隐藏了,如何还原 解除隐藏:工具--文件夹选项--查看--显示所有文件和文件夹-确定

C#一个封装的加密解密类

using System;

using SystemText;

using SystemGlobalization;

using SystemSecurityCryptography;

using SystemWindowsForms;

namespace JhEncrypts

{

public class JhEncrypt

{

/// <summary>

/// 构造方法

/// </summary>

public JhEncrypt()

{

}

/// <summary>

/// 使用缺省密钥字符串加密

/// </summary>

/// <param name="original">明文</param>

/// <returns>密文</returns>

public static string Encrypt(string original)

{

return Encrypt(original,"JASONHEUNG");

}

/// <summary>

/// 使用缺省密钥解密

/// </summary>

/// <param name="original">密文</param>

/// <returns>明文</returns>

public static string Decrypt(string original)

{

return Decrypt(original,"JASONHEUNG",SystemTextEncodingDefault);

}

/// <summary>

/// 使用给定密钥解密

/// </summary>

/// <param name="original">密文</param>

/// <param name="key">密钥</param>

/// <returns>明文</returns>

public static string Decrypt(string original, string key)

{

return Decrypt(original,key,SystemTextEncodingDefault);

}

/// <summary>

/// 使用缺省密钥解密,返回指定编码方式明文

/// </summary>

/// <param name="original">密文</param>

/// <param name="encoding">编码方式</param>

/// <returns>明文</returns>

public static string Decrypt(string original,Encoding encoding)

{

return Decrypt(original,"JASONHEUNG",encoding);

}

/// <summary>

/// 使用给定密钥加密

/// </summary>

/// <param name="original">原始文字</param>

/// <param name="key">密钥</param>

/// <param name="encoding">字符编码方案</param>

/// <returns>密文</returns>

public static string Encrypt(string original, string key)

{

byte[] buff = SystemTextEncodingDefaultGetBytes(original);

byte[] kb = SystemTextEncodingDefaultGetBytes(key);

return ConvertToBase64String(Encrypt(buff,kb));

}

/// <summary>

/// 使用给定密钥解密

/// </summary>

/// <param name="encrypted">密文</param>

/// <param name="key">密钥</param>

/// <param name="encoding">字符编码方案</param>

/// <returns>明文</returns>

public static string Decrypt(string encrypted, string key,Encoding encoding)

{

byte[] buff = ConvertFromBase64String(encrypted);

byte[] kb = SystemTextEncodingDefaultGetBytes(key);

return encodingGetString(Decrypt(buff,kb));

}

/// <summary>

/// 生成MD5摘要

/// </summary>

/// <param name="original">数据源</param>

/// <returns>摘要</returns>

public static byte[] MakeMD5(byte[] original)

{

MD5CryptoServiceProvider hashmd5 = new MD5CryptoServiceProvider();

byte[] keyhash = hashmd5ComputeHash(original);

hashmd5 = null;

return keyhash;

}

/// <summary>

/// 使用给定密钥加密

/// </summary>

/// <param name="original">明文</param>

/// <param name="key">密钥</param>

/// <returns>密文</returns>

public static byte[] Encrypt(byte[] original, byte[] key)

{

TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();

desKey = MakeMD5(key);

desMode = CipherModeECB;

return desCreateEncryptor()TransformFinalBlock(original, 0, originalLength);

}

/// <summary>

/// 使用给定密钥解密数据

/// </summary>

/// <param name="encrypted">密文</param>

/// <param name="key">密钥</param>

/// <returns>明文</returns>

public static byte[] Decrypt(byte[] encrypted, byte[] key)

{

TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();

desKey = MakeMD5(key);

desMode = CipherModeECB;

return desCreateDecryptor()TransformFinalBlock(encrypted, 0, encryptedLength);

}

/// <summary>

/// 使用给定密钥加密

/// </summary>

/// <param name="original">原始数据</param>

/// <param name="key">密钥</param>

/// <returns>密文</returns>

public static byte[] Encrypt(byte[] original)

{

byte[] key = SystemTextEncodingDefaultGetBytes("JASONHEUNG");

return Encrypt(original,key);

}

/// <summary>

/// 使用缺省密钥解密数据

/// </summary>

/// <param name="encrypted">密文</param>

/// <param name="key">密钥</param>

/// <returns>明文</returns>

public static byte[] Decrypt(byte[] encrypted)

{

byte[] key = SystemTextEncodingDefaultGetBytes("JASONHEUNG");

return Decrypt(encrypted,key);

}

}

}Top

以上就是关于写一个对文本文件加密的程序和一个解密程序全部的内容,包括:写一个对文本文件加密的程序和一个解密程序、如何给我的文档加密、c#简单的文本加密程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9511334.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存