-
2020-08-26 11:16:18
/// <summary> /// 对文件流进行MD5加密 /// </summary> /// <param name="filePath"></param> /// <returns></returns> /// <example></example> public static string MD5Stream(string filePath) { FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read); MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); md5.ComputeHash(fs); fs.Close(); byte[] b = md5.Hash; md5.Clear(); StringBuilder sb = new StringBuilder(32); for (int i = 0; i < b.Length; i++) { sb.Append(b[i].ToString("X2")); } Console.WriteLine(sb.ToString()); Console.ReadLine(); return sb.ToString(); } /// <summary> /// 对文件进行MD5加密 /// </summary> /// <param name="filePath"></param> public static void MD5File(string filePath) { FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read); int bufferSize = 1048576; // 缓冲区大小,1MB byte[] buff = new byte[bufferSize]; MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); md5.Initialize(); long offset = 0; while (offset < fs.Length) { long readSize = bufferSize; if (offset + readSize > fs.Length) { readSize = fs.Length - offset; } fs.Read(buff, 0, Convert.ToInt32(readSize)); // 读取一段数据到缓冲区 if (offset + readSize < fs.Length) // 不是最后一块 { md5.TransformBlock(buff, 0, Convert.ToInt32(readSize), buff, 0); } else // 最后一块 { md5.TransformFinalBlock(buff, 0, Convert.ToInt32(readSize)); } offset += bufferSize; } fs.Close(); byte[] result = md5.Hash; md5.Clear(); StringBuilder sb = new StringBuilder(32); for (int i = 0; i < result.Length; i++) { sb.Append(result[i].ToString("X2")); } Console.WriteLine(sb.ToString()); Console.ReadLine(); }
转载于 https://www.cnblogs.com/ahui/archive/2010/12/23/1914586.html
更多相关内容 -
c#中对xml文件加密和解密完整代码
2019-11-30 01:01:09c#中对xml文件加密和解密完整代码,之前到网上下载的代码都是残缺不齐,这部是我个人做的,保证完整 c#中对xml文件加密和解密完整代码,之前到网上下载的代码都是残缺不齐,这部是我个人做的,保证完整 -
Java实现对文档的加密解密
2019-05-05 15:28:08进行加密的文档和加密后的文档,以及解密后的文档都需要用户自己进行创建。 -
DES算法实现对文件的加密
2018-07-31 17:28:08利用MFC基于对话框实现DES算法对整个文件加密,不只是加密文档,视频,图片,声音等文件都能实现加密 -
android中对文件加密解密的实现
2021-01-05 19:58:021、加密方法:存储文件时,从输入流中截取文件的字节数组,对字节数组进行加密,至于加密的方式和算法就可以视需求而定了,然后把加密后的字节数组写入到文件中,最后生成加密后的文件; 2、解密方法:同加密方法... -
各种文件加密程序,可加密文档、视频、图片等
2021-01-11 15:12:42可加密任何格式的文件,支持加密子文件夹,加密后,所有的文件都变成PNG格式,双击是图片类型打开,改后缀也不能打开加密后的文件,加密解密密码:colyn -
delphi 文件加密解密(支持大文件)
2014-09-25 14:13:33CSDN也有相同的资源,不过缺少关键性代码,而这份是完整源码,在D7下可直接使用,经过...Delphi实现CryptAPI加密文件、解密文件的示例源码,选择需要加密加密的文件,设置密码,可轻松实现加密,同时程序还实现解密。 -
EXE文件加密器永久注册版
2019-01-09 16:14:12EXE文件加密器永久注册版 可以加密exe文件;...,执行密码与用户的电脑硬件绑定,用户无法传播执行... 2、OFFICE文档加密器 3、PDF文档加密器 4、多媒体文件加密器离线授权版(加密所有音频视频文件) 5、Flash文件加密等 -
如何通过Java实现加密、解密Word文档
2020-08-25 20:41:14主要介绍了如何通过Java实现加密、解密Word文档,对一些重要文档,常需要对文件进行加密,查看文件时,需要正确输入密码才能打开文件。下面介绍了一种比较简单的方法给Word文件加密以及如何给已加密的Word文件解除... -
国密算法实现文件加密解密,用到了sm2,sm3,sm4算法,delph7可以编译运行
2020-09-07 17:49:33国密算法实现文件加密,用到了sm2,sm3,sm4算法,签名,验签,生成密钥对,加密解密,包括所有示例源码,delphi7可以编译运行。 -
java文档加密jar包 文档防泄密
2019-04-03 17:37:381、文档加密方式 调用方法FileUtil.fileEncrypt(fileTemp1, fileincode,"222222222222"),参数说明 * @param prepareEncryptfilePath 待加密文件路径 * @param finishfEncryptfilePath 加密文件输出路径 * @... -
前端aes加密实现文件-aes.js
2020-11-06 16:16:41前端aes加密实现文件-aes.js -
Excel文档加密与版权管理器永久注册版
2019-01-09 16:22:35Excel文档加密与版权管理器永久注册版 加密excel文档,支持xls;csv;xlw;xlsx;xlsm;xlsb; 保护excel文档分发,防止编辑、防止复制、防止打印 ;用户打开受加密保护的文档时,加密文件会弹出验证框要求用户输入阅读... -
三未信安jec文档,加密机服务器配置说明文件
2020-12-15 17:09:52国密加密服务器密码机jce文档和加密机安装文档,包含putty.exe,swxajce使用指南,web挂你用户指南等 -
唯一可以对手机外置SD卡文件进行加密的软件
2018-01-30 11:48:59网上绝大部分软件只能对内置SD卡加密,本软件突破常规,可以对手机外置SD卡文件进行加密,不仅是图片视频,其他文档之类的文件都支持加密。这个功能首屈一指,恐怕是网上唯一一个此类软件。支持手机桌面伪装成计算器... -
文档管理系统-共享文件夹加密专家 保护文件安全
2018-08-18 12:03:41文档管理系统-共享文件夹加密专家,禁止删除复制共享文件,是一款专用于企业共享文件的安全管理软件,为公司局域网共享文件提供加密保护。软件提供了权限设置功能,为每个用户分配不同的权限——文件既能共享又能... -
文件非对称加密解密工具(RSA).exe
2019-07-25 10:24:42对文档加密会对文档同目录下生成一个后缀名加.hh的文档。 操作说明: 一、对字符串加密: 1.首先要生成加密的密钥 2.输入要加密的字符串对其进行加密 3.解密也需要相应的privatekey密钥 二、对文件加解密: 1.生成并... -
09机密文件加密 v162p(修订版2)
2020-11-12 20:56:49高强度多重专业加密工具软件,作者自己也用它来加密文档和源码,真实加密指定文件夹下的重要文件(如文档、源码、图像、视频等),加密后,即便硬盘或U盘被盗去,文件的内容也不会泄密。解密后文件还原,即可正常操作... -
C#文件加密解密(完整项目)
2017-11-05 11:28:11实现C#加密各种文件 和解密加密后的文件 完整工程 直接可以编译运行 -
Python实现对文件内容进行加密
2021-12-06 15:45:53用Python实现对文件的内容进行加密,之前博主查询了资料看见的多半是Python把文件打包成另外一个格式或编码的文件,这样没意思了!还不如自己做一个加密程序,用来加密文件,这样,别人想随便盗取你的文件内容也得看...目录
用Python实现对文件的内容进行加密,之前博主查询了资料看见的多半是Python把文件打包成另外一个格式或编码的文件,这样没意思了!还不如自己做一个加密程序,用来加密文件,这样,别人想随便盗取你的文件内容也得看得懂!它不香吗!
百度上的讲解基本上是什么算法之内的,真麻烦!我要是会就好了...
Small-fish文件加密库
因为要解密文件,所以我就做了第一个第三个命令行库。用来加密文件的命令行。
安装它
pip install Small-fish
直接windows命令行输入: Small-fish -h
这就能看到使用方法了
1.加密
命令行输入 Small-fish -e xxx 其中xxx代表要加密的文件(必须是UTF-8编码)
下面输出的就是解密后内容
其实没有什么好神秘的原理,就是
1.读取源文件 ——》2.将文件内容转换成指定字符 ——》4.写入一个加密文件
怎么样?是不是很简单,看效果图:
要加密文件内容
I am PYmili You name?
加密后内容
I;/none;0a;0m;/none;P;Y;0m;0i;0l;0i; ;Y;0o;0u;/none;0n;0a;0m;0e;?;
这就是加密后的效果,都是只是概念。加密后会生成一个enc.ENC文件在当前目录,也就是命令行目录的位置
2.解密
那我们如何解密呢?
读取文件内容——》匹配内容是否相同——》转换至一个新文件
依旧是命令行命令
Small-fish -d xxx 其中xxx表示要解密文件路径
解密后就会生成dec.txt文件在当前目录,也就是命令行位置
这样文件就解密出来了!是不是很简单?
1.代码讲解
字典
class ENC: def __init__(self): self.cd={"a":"0x000a"}
首先我们得创建一个类和一个字典,字典用来设定每个字符串要转换成什么字符。规则就是你自己指定了!想写什么就什么。
加密函数
def enc(self, filepath): self.path=filepath File_Msg=[] count = -1 for count, lirn in enumerate(open(f'{self.path}', 'r', encoding='utf-8')): pass count += 1 line = count with open(f"{self.path}", 'r', encoding="utf-8") as p: for rea in range(int(line)): rea=p.readline() File_Msg.append(rea) enc=[] with open(f"enc.ENC", 'w+', encoding="utf-8") as index: for Msg in File_Msg: for m in Msg: if m == "a": enc.append(self.cd["a"]+";")
文件加密,主要是读取文件的内容然后于字典的键匹配,匹配成功就可以写入到列表转换
for en in enc: print(en) index.write(en)
解密函数
解密函数于加密函数一致,只是识别的是字典的键值。然后转换
def dec(self, file): File_Msg=[] count = -1 for count, lirn in enumerate(open(rf'{file}', 'r', encoding='utf-8')): pass count += 1 line = count with open(f"{file}", 'r', encoding="utf-8") as dex: File_Msg=dex.read() dec=[] open(f"dec.txt", 'w', encoding='utf-8') with open(f"dec.txt", 'a+', encoding='utf-8') as dexc: print(File_Msg) for m in File_Msg.split(';'): if m == self.cd["a"]: for de in dec: dexc.write(de)
有问题或源代码在我的QQ群:706128290 免费拿取或提问
-
如何用C语言对文件进行简单加密
2020-07-05 19:50:15最近在完成大作业的时候需要实现一个用C语言对文件进行简单加密的操作,这里主要用的加密思路是破坏文件头,使得系统无法识别文件从而进行加密,最初的思路是将用户输入的加密口令转成ASCII码,再与文件头数据循环...最近在完成大作业的时候需要实现一个用C语言对文件进行简单加密的操作,这里主要用的加密思路是破坏文件头,使得系统无法识别文件从而进行加密,最初的思路是将用户输入的加密口令转成ASCII码,再与文件头数据循环进行异或操作,从而破坏文件头数据,使得系统无法识别文件,而从安全性上来说,就算破译者拿到了用户的口令,他也无法知道我们拿了多少数据进行异或,从而提高了加密文件破译的安全性,若需要破译加密文件,不仅需要拿到用户的口令,在不知道具体加密数据位数时,只能对加密文件进行爆破异或,所以这种加密方式具有一定的安全性。
在具体实现的时候,以下仅给出最简单的实现方式,仅对文件头的20个字节的数据进行异或操作,且为了方便起见,这里假设用户的加密口令就是123,指定1.bmp文件进行加密和解密操作。本代码仅作加密文件思路参考,各位大佬可以根据自己的情况和需要加以补充,希望能对各位有所启发。
本文仅提供C语言简单加密文件的基本思路,我的后一篇文章对本代码的加解密算法进行了完善和补充,增强了加密文件的安全性,我本人更为推荐,这里放一个链接,需要的朋友也可以看一下C语言简单加密文件+#include<stdio.h> //全局变量的定义 unsigned short int res[10]; //储存加密后的数据,一个unsigned short int占两个字节 unsigned short int temp; //临时储存非加密数据 int length; //储存原文件长度 int i=0; void encrypto() { FILE *fp1=fopen("1.bmp","rb"); //这里可以改为用户输入路径文件,本程序为了便捷就固定了文件名 if(fp1!=NULL) { for(i=0;i<10;i++){ fread(&res[i],sizeof(unsigned short int),1,fp1); //从原文件种读取20个字节 res[i]^=123; //将读取出的数据与用户输入的密钥做异或,粉碎文件头 } //这里为了方便起见假设用户加密口令为123 //获取BMP原文件长度 fseek(fp1,0,2); //使文件光标退到文件结尾 length=ftell(fp1); //放回文件长度 fclose(fp1); FILE *fp2=fopen("2.bmp","wb"); //这里也可以改为用户输入的路径 fp1=fopen("1.bmp","rb"); if(fp2!=NULL) { for(i=0;i<10;i++){ fwrite(&res[i],sizeof(unsigned short int),1,fp2);//将异或后的数据存储在新文件中 } fseek(fp1,20,0); //将原文件的文件指针向后移动20个字节 while(i<length/2) //循环将fp1的非加密数据写入fp2中 { fread(&temp,sizeof(unsigned short int),1,fp1); fwrite(&temp,sizeof(unsigned short int),1,fp2); i++; } fclose(fp1); fclose(fp2); printf("加密成功!请牢记您的加密口令\n"); }else{ printf("保存加密文件失败!\n"); } }else{ printf("打开文件失败!\n"); } } void decrypto() { FILE *fp1=NULL,*fp2=NULL; fp1=fopen("2.bmp","rb"); //打开加密文件 fseek(fp1,0,2); //使加密文件的光标移动到文件末尾 length=ftell(fp1); //获取加密文件的长度 rewind(fp1); //使加密文件的光标移动到文件开头 for(i=0;i<10;i++){ // fread(&res[i],sizeof(unsigned short int),1,fp1); //从加密文件中取出要解密部分的数据 res[i]^=123; } fp2=fopen("3.bmp","wb"); //fp2为解密文件指针 for(i=0;i<10;i++) { fwrite(&res[i],sizeof(unsigned short int),1,fp2); //写入解密后的数据 } fseek(fp1,20,0); i=0; while(i<length/2) { fread(&temp,sizeof(unsigned short int),1,fp1); fwrite(&temp,sizeof(unsigned short int),1,fp2); i++; } printf("解密成功!\n"); } int main() { encrypto(); decrypto(); }
接下来我们运行这个代码:
可以看到以及生成了两个文件,分别是2.bmp(加密文件)和3.bmp(解密文件),我们利用winhex查看文件头
不难发现对于2.bmp文件的文件头已经无法识别,而3.bmp文件的文件头于原文件(1.bmp)一致,通过查看图片属性也能发现这三个bmp文件的大小完全一致,所以不存在数据的损失,而当你打开2.bmp文件的时候,却会发现
系统已经无法识别和显示出加密文件,至此,我们利用C语言对文件进行加密和解密的操作全部完成。希望能为各位大佬抛砖引玉。再次感谢你的观看,若还有疑问,欢迎评论留言。
-
AES算法Java实现对文件加密
2013-12-22 17:38:48湖北工业大学应用密码学期末课程设计,我做的是AES算法java实现对文档的保护。做的一个应用。 -
加密小脚本_加密_文件_
2021-09-29 03:57:38一个加密小教本,可以正常加密一些文件,照片,文档,比较简单实用 -
c++实现文件的加密和解密
2018-10-15 17:10:08VS2008实现c++对文件进行加密和解密操作,加密之后文件只会显示乱码,解码之后正常显示 -
图纸加密软件(文档加密) V3.0.zip
2019-07-14 00:57:38图纸加密软件(文档加密) 是上海超陵公司开发的具有自主知识产权的电子文档安全加密软件,采用创新的安全策略和自主创新的实时加密技术与应用程序监控技术,实现对企业内部敏感信息的载体――电子文档,如:机密... -
C# 实现对文件的加密
2013-12-01 14:15:54C# 实现对文件的加密,采用DES加密算法,可以对所有类型的文件进行加密 -
(原创)android使用AES加密和解密文件
2017-03-03 18:13:33(原创)android使用AES加密和解密文件,博客链接地址:http://blog.csdn.net/lnn368/article/details/52712407#comments -
大势至电脑文件夹加密软件、文档加密管理系统V2.0
2017-08-18 11:50:22大势至企业文档加密管理系统是一款专业的电脑文件加密软件,同时还可以加密U盘文件,防止电脑文件非授权访问。同时,系统还可以隐藏磁盘,防止未经授权访问磁盘文件的行为。此外,系统还可以设置加密文件访问权限,... -
Office文档加密工具使用视频教程
2021-06-19 04:04:21可以加密多种文档格式,比如excel,word,ppt,pptx等等office文档格式加密, 加密后的文档可以一机一码授权,保护外发文档,绑定用户电脑阅读、防扩散; 用户需要得到您授权的开启密码后才可以打开,您可以为用户... -
java实现文件加密
2013-01-11 11:09:33java实现文件加密