精华内容
下载资源
问答
  • 利用汇编语言编写的文件加密解密程序,有详细解释说明、源代码
  • Linux下实现文件加密解密

    千次阅读 2018-10-25 20:31:06
    Linux下利用异或加密解密算法实现文件加密解密 1.新建三个文件file1、file2、file2,分别用于存放原始数据、加密数据、解密数据。打开文件1写入原始数据。如图所示: 图1创建文件 图2文件1内容 2.利用vi文本...

    Linux下利用异或加密解密算法实现文件加密解密

    1.新建三个文件file1、file2、file2,分别用于存放原始数据、加密数据、解密数据。打开文件1写入原始数据。如图所示:
    在这里插入图片描述

    在这里插入图片描述
    2.利用vi文本编辑器创建文件encrypt.c文件,并编写代码。如图所示:
    在这里插入图片描述
    在这里插入图片描述
    3.使用gcc将源代码编译成可执行文件。
    4.运行可执行文件,如图所示:

    在这里插入图片描述

    打开文件2,里面存放的是加密数据,打开文件三,解密后的数据是1234,等于原数据。如图所示:
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • c#源码 DES算法实现文件加密解密

    热门讨论 2009-04-08 15:19:15
    网上的类,很感兴趣,写了这个DES文件加密程序,已测试通过。 补充 button3_Click改为下述代码: private void button3_Click(object sender, EventArgs e) { sFileIn = this.textBox1.Text; sFileOut = this....
  • C++实现文件加解密

    2009-11-19 11:11:58
    先在加密文件夹下写入明文一记事本保存运行加密程序,这时会自动生成一个名为“密文”的txt文件,讲它拷贝到解密文件夹下,运行解密,就会生成名为“解密的明文”的txt记事本问件,此文件与原文件“明文”一致。
  • 本资源主要是利用python对文件进行简单加密和解密,基本算法简单,可以用来学习和参考一下。
  • 该文件包中源代码主要是实现文件加密解密源代码程序
  • Java代码实现文件的zip压缩(支持使用密码),在网上搜索了好多这方面的资料,都不全面,花了几天时间整理了一下代码到DecryptionZipUtil.java,实例代码简单易懂,希望可以帮到你。
  • MFC 实现文本文件加密解密

    热门讨论 2012-04-11 19:20:14
    这是基于VC2010平台下的对文本文件加密解密的一个程序,有整个工程源码
  • DES文件加密解密程序

    2009-06-24 15:10:29
    这是一个可以对文件进行加密解密程序, 含有源程序,可供研究学习,通过算法实现
  • 使用C#语言实现的简单的文本文件加解密程序源码,支持部分加密,界面简洁,使用简单,可作为课设使用,
  • C语言实现文件加密解密

    千次阅读 2014-07-05 19:36:09
    原文链接: http://jingyan.baidu.com/article/3052f5a1b0f83b97f21f8671.html
    展开全文
  • 实现中文加密,多分组加密解密,小文件加密解密
  • 文件加密解密

    2018-07-27 15:36:13
    在 vc++6.0 上实现文件加密解密程序注意没有mfc。
  • java 文件加解密程序

    2010-08-26 22:32:12
    程序分两个部分,一个是对文件的加密部分,一个是对文件解密部分,两个过程都用到了对称加密算法和非对称加密算法,大大提高了安全性
  • 文件加解密

    2014-08-21 09:12:28
    在信息安全技术中,常需要对文件进行加密来实现文件的安全性,这个程序可以实现对文件的加密及解密
  • C++源码实现RC4的文件加密、解密功能,本程序可在VC++ 6.0环境下直接编译成功。在窗体中选择需要加密的文件,随便输入你自己想要的加密密钥,点击“文件加密”功能,即可快速实现基于RC4算法的文件加密程序。保存的...
  • DES加密解密程序,C#实现,可实现字符串加密以及文件加密
  • java异或实现加解密程序,适合新手,并且做了简单的图形化界面,点击第一个按钮选择文件,在第二个文本框里输入密码,最后点击开始加密
  • 程序通过VC++实现了AES的加解密程序程序简单完善,欢迎大家下载
  • 这个程序是我在一个Q群共享下载的。包括了一些加密方式, 文本内容加密、MD5加密、文件加密。其中文件加密可以支持大数据加密。当然这个大数据是相对而言的。我也做过测试。测试过的是5。8G加密成功,解密也成功。更...
  • Qt界面程序, 调用OpenSSL加密库, 采用AES, RSA完成本地文件加密; 本压缩包支持Linux 32bit
  • 使用CryptoJS在小程序实现加解密

    万次阅读 2018-07-19 14:02:05
    在七牛云存储开放静态文件中搜索crypto-js 二.引入相关的js在静态页面测试,示例代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>crypto-js-demo...

    注:本文使用md5和rc4作为示例代码,可以根据实际项目选择不同的加密方式

    一.在七牛云存储开放静态文件中搜索crypto-js

    二.引入相关的js在静态页面测试,示例代码如下:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>crypto-js-demo</title>
    <script src="http://cdn.staticfile.org/crypto-js/3.1.2/components/core-min.js"></script>
    <script src="http://cdn.staticfile.org/crypto-js/3.1.2/components/md5-min.js"></script>
    <script src="http://cdn.staticfile.org/crypto-js/3.1.2/components/cipher-core-min.js"></script>
    <script src="http://cdn.staticfile.org/crypto-js/3.1.2/components/rc4-min.js"></script>
    </head>
    <body>
    <script>
    	//MD5
    	var md5Str = CryptoJS.MD5("key").toString(CryptoJS.enc.Hex).toUpperCase();
    	console.log("md5后得到的字符串:%s",md5Str)
    	//使用md5后的字符串作为rc4的加密密钥实现rc4加解密
    	var key = CryptoJS.enc.Utf8.parse(md5Str);
    	var encryStr = CryptoJS.RC4.encrypt("测试", key).toString();
    	console.log("rc4加密后得到的字符串:%s",encryStr)
    	var decryptStr = CryptoJS.RC4.decrypt(CryptoJS.lib.CipherParams.create({ ciphertext:CryptoJS.enc.Hex.parse(encryStr)}),key).toString(CryptoJS.enc.Utf8);
    	console.log("rc4解密后得到的字符串:%s",decryptStr);
    </script>
    </body>
    </html>

    控制台打印结果如下:

    三.按照静态页面引入js的顺序,将所有用到CryptoJS的js放到同一个文件中,命名为CryptoJS.js,并在文件最下方暴露接口module.exports = CryptoJS;示例代码如下:

    var CryptoJS=CryptoJS||function(h,r){var k={},l=k.lib={},n=function(){},f=l.Base={extend:function(a){n.prototype=this;var b=new n;a&&b.mixIn(a);b.hasOwnProperty("init")||(b.init=function(){b.$super.init.apply(this,arguments)});b.init.prototype=b;b.$super=this;return b},create:function(){var a=this.extend();a.init.apply(a,arguments);return a},init:function(){},mixIn:function(a){for(var b in a)a.hasOwnProperty(b)&&(this[b]=a[b]);a.hasOwnProperty("toString")&&(this.toString=a.toString)},clone:function(){return this.init.prototype.extend(this)}},
    j=l.WordArray=f.extend({init:function(a,b){a=this.words=a||[];this.sigBytes=b!=r?b:4*a.length},toString:function(a){return(a||s).stringify(this)},concat:function(a){var b=this.words,d=a.words,c=this.sigBytes;a=a.sigBytes;this.clamp();if(c%4)for(var e=0;e<a;e++)b[c+e>>>2]|=(d[e>>>2]>>>24-8*(e%4)&255)<<24-8*((c+e)%4);else if(65535<d.length)for(e=0;e<a;e+=4)b[c+e>>>2]=d[e>>>2];else b.push.apply(b,d);this.sigBytes+=a;return this},clamp:function(){var a=this.words,b=this.sigBytes;a[b>>>2]&=4294967295<<
    32-8*(b%4);a.length=h.ceil(b/4)},clone:function(){var a=f.clone.call(this);a.words=this.words.slice(0);return a},random:function(a){for(var b=[],d=0;d<a;d+=4)b.push(4294967296*h.random()|0);return new j.init(b,a)}}),m=k.enc={},s=m.Hex={stringify:function(a){var b=a.words;a=a.sigBytes;for(var d=[],c=0;c<a;c++){var e=b[c>>>2]>>>24-8*(c%4)&255;d.push((e>>>4).toString(16));d.push((e&15).toString(16))}return d.join("")},parse:function(a){for(var b=a.length,d=[],c=0;c<b;c+=2)d[c>>>3]|=parseInt(a.substr(c,
    2),16)<<24-4*(c%8);return new j.init(d,b/2)}},p=m.Latin1={stringify:function(a){var b=a.words;a=a.sigBytes;for(var d=[],c=0;c<a;c++)d.push(String.fromCharCode(b[c>>>2]>>>24-8*(c%4)&255));return d.join("")},parse:function(a){for(var b=a.length,d=[],c=0;c<b;c++)d[c>>>2]|=(a.charCodeAt(c)&255)<<24-8*(c%4);return new j.init(d,b)}},t=m.Utf8={stringify:function(a){try{return decodeURIComponent(escape(p.stringify(a)))}catch(b){throw Error("Malformed UTF-8 data");}},parse:function(a){return p.parse(unescape(encodeURIComponent(a)))}},
    q=l.BufferedBlockAlgorithm=f.extend({reset:function(){this._data=new j.init;this._nDataBytes=0},_append:function(a){"string"==typeof a&&(a=t.parse(a));this._data.concat(a);this._nDataBytes+=a.sigBytes},_process:function(a){var b=this._data,d=b.words,c=b.sigBytes,e=this.blockSize,f=c/(4*e),f=a?h.ceil(f):h.max((f|0)-this._minBufferSize,0);a=f*e;c=h.min(4*a,c);if(a){for(var g=0;g<a;g+=e)this._doProcessBlock(d,g);g=d.splice(0,a);b.sigBytes-=c}return new j.init(g,c)},clone:function(){var a=f.clone.call(this);
    a._data=this._data.clone();return a},_minBufferSize:0});l.Hasher=q.extend({cfg:f.extend(),init:function(a){this.cfg=this.cfg.extend(a);this.reset()},reset:function(){q.reset.call(this);this._doReset()},update:function(a){this._append(a);this._process();return this},finalize:function(a){a&&this._append(a);return this._doFinalize()},blockSize:16,_createHelper:function(a){return function(b,d){return(new a.init(d)).finalize(b)}},_createHmacHelper:function(a){return function(b,d){return(new u.HMAC.init(a,
    d)).finalize(b)}}});var u=k.algo={};return k}(Math);
    (function(E){function h(a,f,g,j,p,h,k){a=a+(f&g|~f&j)+p+k;return(a<<h|a>>>32-h)+f}function k(a,f,g,j,p,h,k){a=a+(f&j|g&~j)+p+k;return(a<<h|a>>>32-h)+f}function l(a,f,g,j,h,k,l){a=a+(f^g^j)+h+l;return(a<<k|a>>>32-k)+f}function n(a,f,g,j,h,k,l){a=a+(g^(f|~j))+h+l;return(a<<k|a>>>32-k)+f}for(var r=CryptoJS,q=r.lib,F=q.WordArray,s=q.Hasher,q=r.algo,a=[],t=0;64>t;t++)a[t]=4294967296*E.abs(E.sin(t+1))|0;q=q.MD5=s.extend({_doReset:function(){this._hash=new F.init([1732584193,4023233417,2562383102,271733878])},
    _doProcessBlock:function(m,f){for(var g=0;16>g;g++){var j=f+g,p=m[j];m[j]=(p<<8|p>>>24)&16711935|(p<<24|p>>>8)&4278255360}var g=this._hash.words,j=m[f+0],p=m[f+1],q=m[f+2],r=m[f+3],s=m[f+4],t=m[f+5],u=m[f+6],v=m[f+7],w=m[f+8],x=m[f+9],y=m[f+10],z=m[f+11],A=m[f+12],B=m[f+13],C=m[f+14],D=m[f+15],b=g[0],c=g[1],d=g[2],e=g[3],b=h(b,c,d,e,j,7,a[0]),e=h(e,b,c,d,p,12,a[1]),d=h(d,e,b,c,q,17,a[2]),c=h(c,d,e,b,r,22,a[3]),b=h(b,c,d,e,s,7,a[4]),e=h(e,b,c,d,t,12,a[5]),d=h(d,e,b,c,u,17,a[6]),c=h(c,d,e,b,v,22,a[7]),
    b=h(b,c,d,e,w,7,a[8]),e=h(e,b,c,d,x,12,a[9]),d=h(d,e,b,c,y,17,a[10]),c=h(c,d,e,b,z,22,a[11]),b=h(b,c,d,e,A,7,a[12]),e=h(e,b,c,d,B,12,a[13]),d=h(d,e,b,c,C,17,a[14]),c=h(c,d,e,b,D,22,a[15]),b=k(b,c,d,e,p,5,a[16]),e=k(e,b,c,d,u,9,a[17]),d=k(d,e,b,c,z,14,a[18]),c=k(c,d,e,b,j,20,a[19]),b=k(b,c,d,e,t,5,a[20]),e=k(e,b,c,d,y,9,a[21]),d=k(d,e,b,c,D,14,a[22]),c=k(c,d,e,b,s,20,a[23]),b=k(b,c,d,e,x,5,a[24]),e=k(e,b,c,d,C,9,a[25]),d=k(d,e,b,c,r,14,a[26]),c=k(c,d,e,b,w,20,a[27]),b=k(b,c,d,e,B,5,a[28]),e=k(e,b,
    c,d,q,9,a[29]),d=k(d,e,b,c,v,14,a[30]),c=k(c,d,e,b,A,20,a[31]),b=l(b,c,d,e,t,4,a[32]),e=l(e,b,c,d,w,11,a[33]),d=l(d,e,b,c,z,16,a[34]),c=l(c,d,e,b,C,23,a[35]),b=l(b,c,d,e,p,4,a[36]),e=l(e,b,c,d,s,11,a[37]),d=l(d,e,b,c,v,16,a[38]),c=l(c,d,e,b,y,23,a[39]),b=l(b,c,d,e,B,4,a[40]),e=l(e,b,c,d,j,11,a[41]),d=l(d,e,b,c,r,16,a[42]),c=l(c,d,e,b,u,23,a[43]),b=l(b,c,d,e,x,4,a[44]),e=l(e,b,c,d,A,11,a[45]),d=l(d,e,b,c,D,16,a[46]),c=l(c,d,e,b,q,23,a[47]),b=n(b,c,d,e,j,6,a[48]),e=n(e,b,c,d,v,10,a[49]),d=n(d,e,b,c,
    C,15,a[50]),c=n(c,d,e,b,t,21,a[51]),b=n(b,c,d,e,A,6,a[52]),e=n(e,b,c,d,r,10,a[53]),d=n(d,e,b,c,y,15,a[54]),c=n(c,d,e,b,p,21,a[55]),b=n(b,c,d,e,w,6,a[56]),e=n(e,b,c,d,D,10,a[57]),d=n(d,e,b,c,u,15,a[58]),c=n(c,d,e,b,B,21,a[59]),b=n(b,c,d,e,s,6,a[60]),e=n(e,b,c,d,z,10,a[61]),d=n(d,e,b,c,q,15,a[62]),c=n(c,d,e,b,x,21,a[63]);g[0]=g[0]+b|0;g[1]=g[1]+c|0;g[2]=g[2]+d|0;g[3]=g[3]+e|0},_doFinalize:function(){var a=this._data,f=a.words,g=8*this._nDataBytes,j=8*a.sigBytes;f[j>>>5]|=128<<24-j%32;var h=E.floor(g/
    4294967296);f[(j+64>>>9<<4)+15]=(h<<8|h>>>24)&16711935|(h<<24|h>>>8)&4278255360;f[(j+64>>>9<<4)+14]=(g<<8|g>>>24)&16711935|(g<<24|g>>>8)&4278255360;a.sigBytes=4*(f.length+1);this._process();a=this._hash;f=a.words;for(g=0;4>g;g++)j=f[g],f[g]=(j<<8|j>>>24)&16711935|(j<<24|j>>>8)&4278255360;return a},clone:function(){var a=s.clone.call(this);a._hash=this._hash.clone();return a}});r.MD5=s._createHelper(q);r.HmacMD5=s._createHmacHelper(q)})(Math);
    CryptoJS.lib.Cipher||function(u){var g=CryptoJS,f=g.lib,k=f.Base,l=f.WordArray,q=f.BufferedBlockAlgorithm,r=g.enc.Base64,v=g.algo.EvpKDF,n=f.Cipher=q.extend({cfg:k.extend(),createEncryptor:function(a,b){return this.create(this._ENC_XFORM_MODE,a,b)},createDecryptor:function(a,b){return this.create(this._DEC_XFORM_MODE,a,b)},init:function(a,b,c){this.cfg=this.cfg.extend(c);this._xformMode=a;this._key=b;this.reset()},reset:function(){q.reset.call(this);this._doReset()},process:function(a){this._append(a);
    return this._process()},finalize:function(a){a&&this._append(a);return this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(a){return{encrypt:function(b,c,d){return("string"==typeof c?s:j).encrypt(a,b,c,d)},decrypt:function(b,c,d){return("string"==typeof c?s:j).decrypt(a,b,c,d)}}}});f.StreamCipher=n.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var m=g.mode={},t=function(a,b,c){var d=this._iv;d?this._iv=u:d=this._prevBlock;for(var e=
    0;e<c;e++)a[b+e]^=d[e]},h=(f.BlockCipherMode=k.extend({createEncryptor:function(a,b){return this.Encryptor.create(a,b)},createDecryptor:function(a,b){return this.Decryptor.create(a,b)},init:function(a,b){this._cipher=a;this._iv=b}})).extend();h.Encryptor=h.extend({processBlock:function(a,b){var c=this._cipher,d=c.blockSize;t.call(this,a,b,d);c.encryptBlock(a,b);this._prevBlock=a.slice(b,b+d)}});h.Decryptor=h.extend({processBlock:function(a,b){var c=this._cipher,d=c.blockSize,e=a.slice(b,b+d);c.decryptBlock(a,
    b);t.call(this,a,b,d);this._prevBlock=e}});m=m.CBC=h;h=(g.pad={}).Pkcs7={pad:function(a,b){for(var c=4*b,c=c-a.sigBytes%c,d=c<<24|c<<16|c<<8|c,e=[],f=0;f<c;f+=4)e.push(d);c=l.create(e,c);a.concat(c)},unpad:function(a){a.sigBytes-=a.words[a.sigBytes-1>>>2]&255}};f.BlockCipher=n.extend({cfg:n.cfg.extend({mode:m,padding:h}),reset:function(){n.reset.call(this);var a=this.cfg,b=a.iv,a=a.mode;if(this._xformMode==this._ENC_XFORM_MODE)var c=a.createEncryptor;else c=a.createDecryptor,this._minBufferSize=1;
    this._mode=c.call(a,this,b&&b.words)},_doProcessBlock:function(a,b){this._mode.processBlock(a,b)},_doFinalize:function(){var a=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){a.pad(this._data,this.blockSize);var b=this._process(!0)}else b=this._process(!0),a.unpad(b);return b},blockSize:4});var p=f.CipherParams=k.extend({init:function(a){this.mixIn(a)},toString:function(a){return(a||this.formatter).stringify(this)}}),m=(g.format={}).OpenSSL={stringify:function(a){var b=a.ciphertext;a=a.salt;
    return(a?l.create([1398893684,1701076831]).concat(a).concat(b):b).toString(r)},parse:function(a){a=r.parse(a);var b=a.words;if(1398893684==b[0]&&1701076831==b[1]){var c=l.create(b.slice(2,4));b.splice(0,4);a.sigBytes-=16}return p.create({ciphertext:a,salt:c})}},j=f.SerializableCipher=k.extend({cfg:k.extend({format:m}),encrypt:function(a,b,c,d){d=this.cfg.extend(d);var e=a.createEncryptor(c,d);b=e.finalize(b);e=e.cfg;return p.create({ciphertext:b,key:c,iv:e.iv,algorithm:a,mode:e.mode,padding:e.padding,
    blockSize:a.blockSize,formatter:d.format})},decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);return a.createDecryptor(c,d).finalize(b.ciphertext)},_parse:function(a,b){return"string"==typeof a?b.parse(a,this):a}}),g=(g.kdf={}).OpenSSL={execute:function(a,b,c,d){d||(d=l.random(8));a=v.create({keySize:b+c}).compute(a,d);c=l.create(a.words.slice(b),4*c);a.sigBytes=4*b;return p.create({key:a,iv:c,salt:d})}},s=f.PasswordBasedCipher=j.extend({cfg:j.cfg.extend({kdf:g}),encrypt:function(a,
    b,c,d){d=this.cfg.extend(d);c=d.kdf.execute(c,a.keySize,a.ivSize);d.iv=c.iv;a=j.encrypt.call(this,a,b,c.key,d);a.mixIn(c);return a},decrypt:function(a,b,c,d){d=this.cfg.extend(d);b=this._parse(b,d.format);c=d.kdf.execute(c,a.keySize,a.ivSize,b.salt);d.iv=c.iv;return j.decrypt.call(this,a,b,c.key,d)}})}();
    (function(){function l(){for(var a=this._S,d=this._i,c=this._j,b=0,e=0;4>e;e++){var d=(d+1)%256,c=(c+a[d])%256,f=a[d];a[d]=a[c];a[c]=f;b|=a[(a[d]+a[c])%256]<<24-8*e}this._i=d;this._j=c;return b}var g=CryptoJS,k=g.lib.StreamCipher,h=g.algo,j=h.RC4=k.extend({_doReset:function(){for(var a=this._key,d=a.words,a=a.sigBytes,c=this._S=[],b=0;256>b;b++)c[b]=b;for(var e=b=0;256>b;b++){var f=b%a,e=(e+c[b]+(d[f>>>2]>>>24-8*(f%4)&255))%256,f=c[b];c[b]=c[e];c[e]=f}this._i=this._j=0},_doProcessBlock:function(a,
    d){a[d]^=l.call(this)},keySize:8,ivSize:0});g.RC4=k._createHelper(j);h=h.RC4Drop=j.extend({cfg:j.cfg.extend({drop:192}),_doReset:function(){j._doReset.call(this);for(var a=this.cfg.drop;0<a;a--)l.call(this)}});g.RC4Drop=k._createHelper(h)})();
    
    
    module.exports = CryptoJS;

    四.在需要使用加解密的小程序js中引入刚刚整合到一起的js

    var CryptoJS = require('../lib/CryptoJS.js');

    五.可以直接使用开始时在静态页面调试好的js代码

    //MD5
    var md5Str = CryptoJS.MD5("key").toString(CryptoJS.enc.Hex).toUpperCase();
    console.log("md5后得到的字符串:%s",md5Str)
    //使用md5后的字符串作为rc4的加密密钥实现rc4加解密
    var key = CryptoJS.enc.Utf8.parse(md5Str);
    var encryStr = CryptoJS.RC4.encrypt("测试", key).toString();
    console.log("rc4加密后得到的字符串:%s",encryStr)
    var decryptStr = CryptoJS.RC4.decrypt(CryptoJS.lib.CipherParams.create({ ciphertext:CryptoJS.enc.Hex.parse(encryStr)}),key).toString(CryptoJS.enc.Utf8);
    console.log("rc4解密后得到的字符串:%s",decryptStr);

    六.总结

    1.本示例只支持MD5加密和RC4加解密;

    2.在静态页面中调试好加解密后,按照js引入的先后顺序整合到同一个文件中,并且暴露接口;

    3.在需要使用的小程序页面对应的js中引入该文件,即可实现加解密;

    4.如果使用其他加解密方式,可引入新的文件按照以上方式重新整合;

    5.由于百度静态资源库无法访问,该内容于2019-03-28 09:33:54重新整理。

    展开全文
  • C-文件加解密程序-使用凯撒加密

    千次阅读 2020-06-13 23:24:22
    main.c #include "kaisa.h" int main() { char str[50]=""; char str2[50]=""; char buf[1024]=""; int k=0,n=12,i=1;... //输入加密解密字符串 //打印菜单 printf("-----------------

    main.c

    #include "kaisa.h"
     
    
     
    int main()
    {
        char str[50]="";
    	char str2[50]="";
    	char buf[1024]="";
        int k=0,n=12,i=1;
    	int len=0;
    
    	FILE *rp,*wp;
    	printf("\n输入文件名: ");
       
        scanf("%s",str);  //输入加密解密字符串
    	
        //打印菜单
        printf("-----------------\n");
        printf("1: Encryption\n");
        printf("2: Decryption\n");
        printf("3:exit\n"); 
        printf("-----------------\n");
        printf("\nPlease choose: ");
        scanf("%d",&k);
        if(k==1){  //加密
    		
    		rp = fopen(str,"rb");
    		
    		strcpy(str2,"加密");
    		wp = fopen(strcat(str2,str),"wb");
    
    		if(rp == NULL || wp ==NULL){
    			
    			goto CLOSE;
    		}
    
    		while(1){
    			len = fread(buf,1,sizeof(buf),rp);
    			encode(buf,n);
    			fwrite(buf,1,sizeof(buf),wp);
    			if(len == 0){
    				break;
    			}
    		}
    
        }else if(k==2){  //解密
           
            
    		rp = fopen(str,"rb");
    		strcpy(str2,"解密");
    		wp = fopen(strcat(str2,str),"wb");
    
    		if(rp == NULL || wp ==NULL){
    			perror("file open error");
    			goto CLOSE;
    		}
    
    
    		while(1){
    			len=fread(buf,1,sizeof(buf),rp);
    			decode(buf,n);
    			fwrite(buf,1,sizeof(buf),wp);
    			if(len == 0){
    				break;
    			}
    		}
    		
        }else{
            exit(0);
        }
    CLOSE:
    	perror("file open error");
    		if(rp != NULL){
    			fclose(rp);
    		}
    		if(wp != NULL){
    			fclose(wp);
    		}
    	system("pause");
        return 0;
    }
    

    kaisa.h

    #pragma once
    #define _CRT_SECURE_NO_WARNINGS
    
    /*字符串加密解密程序 凯撒加密*/
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    #ifdef __cplusplus
    extern "C"{
    //函数encode()将字母顺序推后n位,实现文件加密功能
    void encode(char str[],int n);
    
    //decode()实现解密功能,将字母顺序前移n位
    void decode(char str[],int n)
    #endif
    
    

    kaisa.c

    //函数encode()将字母顺序推后n位,实现文件加密功能
    #include "kaisa.h"
    void encode(char str[],int n){
        char c;
        int i;
        for(i=0;i<strlen(str);++i){  //遍历字符串
            c=str[i];
            if(c>='a' && c<='z'){  //c是小写字母
                if(c+n%26<='z'){  //若加密后不超出小写字母范围
                    str[i]=(char)(c+n%26);  //加密函数
                }else{  //加密后超出小写字母范围,从头开始循环小写字母
                    str[i]=(char)(c+n%26-26);
                }
            }else if(c>='A' && c<='Z'){ //c为大写字母
                if(c + n%26 <= 'Z'){  //加密后不超出大写字母范围
                    str[i]=(char)(c+n%26);
                }else{  //加密后超出大写字母范围,从头开始循环大写字母
                    str[i]=(char)(c+n%26-26);
                }
            }else{  //不是字母,不加密
                str[i]=c;
            }
        }
       // printf("\nAfter encode: \n");
       // puts(str);  //输出加密后的字符串
    	printf("\r正在加密..");
    }
     
     
    //decode()实现解密功能,将字母顺序前移n位
    void decode(char str[],int n){
        char c;
        int i;
        //遍历字符串
        for(i=0;i<strlen(str);++i){
            c=str[i];
            //c为小写字母
            if(c>='a' && c<='z'){
                //解密后还为小写字母,直接解密
                if(c-n%26>='a'){
                    str[i]=(char)(c-n%26);
                }else{
                    //解密后不为小写字母了,通过循环小写字母处理为小写字母
                    str[i]=(char)(c-n%26+26);
                }
            }else if(c >= 'A' && c<='Z'){  //c为大写字母
                if(c-n%26>='A'){  //解密后还为大写字母
                    str[i]=(char)(c-n%26);
                }else{  //解密后不为大写字母了,循环大写字母,处理为大写字母
                    str[i]=(char)(c-n%26+26);
                }
            }else{  //非字母不处理
                str[i]=c;
            }
        }
        printf("\r正在解密密..");
    }//该函数代码有冗余,读者可改进
    

    C语言实现加密解密功能 附带详细注释源码

    展开全文
  • 利用java程序实现文件加密

    万次阅读 热门讨论 2019-07-18 20:31:22
    我们的文件在计算机中都是以二进制的形式存储,而Java中IO流(字节流和字符流)可以实现对底层文件的读取,故利用Java的IO流进行文件拷贝时,可以对底层二进制进行加密操作,随后通过解密操可以还原。 例如,我们对...
  • 广东理工职业学院 邱炳城 2008.12 * Visual 程序设计实验 实验10 文件加解密 * 功能描述 实现对任何文件进行加密及解密 * 实验内容 1FileStreamStreamReaderStreamWriter对象及应用 2OpenFileDialog控件...
  • C语言实现简单文件加密解密

    千次阅读 2011-08-29 10:31:28
    文件加密解密: 通过XOR的方式进行简单加密 也没什么 主要是为了弥补tar 不能设置密码的不足 哈哈!! 好处是第二次XOR数据又回复了,第二次相当于解密,操作简单,哈哈!! # include # include # define ...
  • 对视频文件、图片等一般文件的加密解密程序少之又少,故写下此文,实现一个对一般文件进行加密的小工具。 程序的主要功能是:用户通过文件选择框选择要加密的文件-》输入密码进行加密;选择加密后的文件,输入密码...
  • c#文件加密解密

    2013-05-22 09:27:13
    c#实现文件的加密和解密,此程序为窗体程序
  • 完整的AES分组与文件加解密功能程序实现 签名: 1 前言  本报告论述在论述AES加密/解密算法理论的基础上,设计一个AES加密/解密软件系统。AES,密码学中的高级加密标准(Advanced Encryption Standard,AES),...
  • 系统安全系列作者将深入研究恶意...这篇文章将分享勒索病毒,通过编写程序实现获取Windows系统目录文件,并对其进行加密和解密的过程;第二部分详细讲解了OllyDbg和在线沙箱的逆向分析过程。希望对入门的同学有帮助。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 70,712
精华内容 28,284
关键字:

如何用程序实现文件加解密