資源簡介

代碼片段和文件信息
%?LQF?coding???
%?alwayslqsl@163.com
%?目前不支持MultiSelect;基本上可以對任何文件進行加密,但是例如記事本的摘要啊,簡介啊無法讀取,可以壓縮成一個壓縮文件后加密。
%?另外本程序可能不支持較大文件的加密(上百兆?),我沒有試過,有時間再改進吧!
%?時間:2010年6月26日
%?版本:v0.0
%?[1]?0~127?沒有fliplr;?128~255?有fliplr作用過;
%?[2]?已有偏移量?1~255;
%?[3]?50~249?=>X
%?[3+(1:X)]?
%?[X+4]?還剩多少?0~X(-1);
clear;clc;
[filename?pathname]?=?uigetfile(‘*.*‘?‘選擇一個待處理的文件‘‘MultiSelect‘?‘off‘);
%
if?isequal(filename0)
???disp(‘用戶取消了選擇!‘);
else
???disp([‘用戶已選擇\\\‘?fullfile(pathname?filename)]);
end
fid?=?fopen([pathname?filename]?‘r‘);
str?=?fread(fid?‘uint8‘)‘;
fclose(fid);
myseed?=?floor(200*rand(1))+50;
addstr?=?zeros(1myseed+4);
addstr(end)?=?mod(length(str)myseed);
addstr(1)?=?floor(255*rand(1));
addstr(2)?=?ceil(255*rand(1));
addstr(3)?=?myseed;
myorder?=?randperm(myseed);
addstr(4:(end-1))?=?myorder;
if?addstr(1)>127
str?=?fliplr(str);
end
str?=?str?+?addstr(2);
myovernum?=?find(str>255);
str(myovernum)?=?str(myovernum)?-?256;
preproc?=?floor(length(str)/myseed);
if?preproc>0
????k?=?0;
????for?n1?=?1:preproc
????????temp?=?str(k+myorder);
????????str(k+(1:myseed))?=?temp;
????????k?=?k?+?myseed;
????end
end
allstr?=?[addstrstr];
mystr?=?‘LQF@‘;
fid?=?fopen([pathnamemystr?filename]?‘w‘);
fwrite(fidallstr?‘uint8‘);
fclose(fid);
disp(‘文件加密完畢!‘);
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1480??2010-06-26?23:17??LQFcode.m
?????文件???????1474??2010-06-26?23:21??LQFdecode.m
-----------?---------??----------?-----??----
?????????????????2954????????????????????2
評論
共有 條評論