資源簡介
DES算法通常用來加密整個文件,本程序是按行加密、解密文件,請注意。
已經過大量測試,沒發現bug

代碼片段和文件信息
#include?
#include?
#include?“base64.h“
/*************************************************
Function:???????base64_to_ascii
Description:????decodes?string?from?base64?to?ascii
Input:??????????const?char?*in:?the?input?string?(NIL-terminated)
int?inlen:?length?of?input?string
int?maxlen:?the?output?buffer?size?limit?0?to?ignore
Output:?????????unsigned?char?*out:?decoded?output?string
Return:?????????length?of?output?string?on?successful
less?than?0?on?error?occur?then?the?output?is?invalid
Others:?????????
?*************************************************/
//int?base64_decode(unsigned?char?*out?const?unsigned?char?*in?int?inlen?int?maxlen)?{
int?base64_decode(unsigned?char?*out?unsigned?char?*in?int?inlen?int?maxlen)?{
????//~int?inlen?=?strlen?(in);
????int?outlen?=?0;
????int?over?=?0;?//?decode?over?flag
????register?char?digit0?digit1?digit2?digit3;
????unsigned?char?*out_org?=?out;
????memset(out?0x00?maxlen);
????//?check?if?arguments?valid
????if?(!out?||?!in)?{
????????return?INVALID_ARG;
????}
????//?decode?each?four?base64?characters
????for?(;?inlen?>=?4;?inlen?-=?4?in?+=?4)?{
????????//?update?output?length?and?check?overflow
????????if?(++outlen?>=?maxlen?&&?maxlen)?{
????????????*out_org?=?‘\0‘;
????????????return?OUTPUT_OVERFLOW;
????????}
????????if?((digit0?=?DECODE64(in[0]))?==?BAD)?{
????????????*out_org?=?‘\0‘;
????????????return?WRONG_FORMAT;
????????}
????????if?((digit1?=?DECODE64(in[1]))?==?BAD)?{
????????????*out_org?=?‘\0‘;
????????????return?WRONG_FORMAT;
????????}
????????*out++?=?((digit0?<2)?&?0xFC)?|?((digit1?>>?4)?&?0x03);
????????if?(in[2]?!=?‘=‘)?{
????????????//?update?output?length?and?check?overflow
????????????if?(++outlen?>=?maxlen?&&?maxlen)?{
????????????????*out_org?=?‘\0‘;
????????????????return?OUTPUT_OVERFLOW;
????????????}
????????????if?((digit2?=?DECODE64(in[2]))?==?BAD)?{
????????????????*out_org?=?‘\0‘;
????????????????return?WRONG_FORMAT;
????????????}
????????????*out++?=?((digit1?<4)?&?0xF0)?|?((digit2?>>?2)?&?0x0F);
????????????if?(in[3]?!=?‘=‘)?{
????????????????//?update?output?length?and?check?overflow
????????????????if?(++outlen?>=?maxlen?&&?maxlen)?{
????????????????????*out_org?=?‘\0‘;
????????????????????return?OUTPUT_OVERFLOW;
????????????????}
????????????????if?((digit3?=?DECODE64(in[3]))?==?BAD)?{
????????????????????*out_org?=?‘\0‘;
????????????????????return?WRONG_FORMAT;
????????????????}
????????????????*out++?=?((digit2?<6)?&?0xC0)?|?(digit3?&?0x3F);
????????????}?else?{
????????????????over?=?1;
????????????????break;
????????????}
????????}?else?{
????????????over?=?1;
????????????break;
????????}
????}
????//?there?cannt?have?tail-fragment?except?after?‘=‘
????if?(!over?&&?inlen?>?0)?{
????????*out_org?=?‘\0‘;
????????return?WRONG_FORMAT;
????}
????//?terminate?the?output?string
????*out?=?‘\0‘;
????return?outlen;
}
/************
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????50176??2017-08-12?19:16??EncryptFile\EncryptFile\Debug\EncryptFile.exe
?????文件?????371024??2017-08-12?19:16??EncryptFile\EncryptFile\Debug\EncryptFile.ilk
?????文件?????461824??2017-08-12?19:16??EncryptFile\EncryptFile\Debug\EncryptFile.pdb
?????文件???????5746??2017-06-28?10:26??EncryptFile\EncryptFile\EncryptFile\ba
?????文件???????2376??2017-06-28?10:26??EncryptFile\EncryptFile\EncryptFile\ba
?????文件???????8064??2017-08-11?20:15??EncryptFile\EncryptFile\EncryptFile\Debug\ba
?????文件???????7964??2017-07-18?14:57??EncryptFile\EncryptFile\EncryptFile\Debug\BuildLog.htm
?????文件???????2142??2017-08-12?19:16??EncryptFile\EncryptFile\EncryptFile\Debug\cl.command.1.tlog
?????文件???????5542??2017-08-12?19:16??EncryptFile\EncryptFile\EncryptFile\Debug\CL.read.1.tlog
?????文件???????2216??2017-08-12?19:16??EncryptFile\EncryptFile\EncryptFile\Debug\CL.write.1.tlog
?????文件??????41022??2017-08-11?21:35??EncryptFile\EncryptFile\EncryptFile\Debug\DES.obj
?????文件???????3701??2017-08-11?20:15??EncryptFile\EncryptFile\EncryptFile\Debug\EncryptFile.Build.CppClean.log
?????文件????????406??2017-08-11?20:15??EncryptFile\EncryptFile\EncryptFile\Debug\EncryptFile.exe.em
?????文件????????472??2017-08-11?20:15??EncryptFile\EncryptFile\EncryptFile\Debug\EncryptFile.exe.em
?????文件????????381??2017-08-12?19:16??EncryptFile\EncryptFile\EncryptFile\Debug\EncryptFile.exe.intermediate.manifest
?????文件????????119??2017-08-12?19:16??EncryptFile\EncryptFile\EncryptFile\Debug\EncryptFile.lastbuildstate
?????文件???????3338??2017-08-12?19:16??EncryptFile\EncryptFile\EncryptFile\Debug\EncryptFile.log
?????文件????????707??2017-08-11?21:21??EncryptFile\EncryptFile\EncryptFile\Debug\EncryptFile.vcxprojResolveAssemblyReference.cache
?????文件??????????0??2017-08-11?20:15??EncryptFile\EncryptFile\EncryptFile\Debug\EncryptFile.write.1.tlog
?????文件????????212??2017-08-11?20:15??EncryptFile\EncryptFile\EncryptFile\Debug\EncryptFile_manifest.rc
?????文件??????????2??2017-08-12?19:16??EncryptFile\EncryptFile\EncryptFile\Debug\li
?????文件??????????2??2017-08-12?19:16??EncryptFile\EncryptFile\EncryptFile\Debug\li
?????文件???????2140??2017-08-12?19:16??EncryptFile\EncryptFile\EncryptFile\Debug\li
?????文件???????3814??2017-08-12?19:16??EncryptFile\EncryptFile\EncryptFile\Debug\li
?????文件???????1392??2017-08-12?19:16??EncryptFile\EncryptFile\EncryptFile\Debug\li
?????文件??????13772??2017-08-12?19:16??EncryptFile\EncryptFile\EncryptFile\Debug\main.obj
?????文件????????458??2017-08-12?19:16??EncryptFile\EncryptFile\EncryptFile\Debug\mt.command.1.tlog
?????文件?????????65??2017-07-18?14:57??EncryptFile\EncryptFile\EncryptFile\Debug\mt.dep
?????文件????????434??2017-08-12?19:16??EncryptFile\EncryptFile\EncryptFile\Debug\mt.read.1.tlog
?????文件????????434??2017-08-12?19:16??EncryptFile\EncryptFile\EncryptFile\Debug\mt.write.1.tlog
............此處省略36個文件信息
- 上一篇:vc++編寫的聊天程序
- 下一篇:C++實現數據結構算法
評論
共有 條評論