⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bbs水木清华站∶精华区h.htm

📁 用des算法加密文件的小程序
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0090)http://www.library.nenu.edu.cn/smthbbs.991022/Hacker.html/Hacker.AIX/00000116/00000002.htm -->
<HTML><HEAD><TITLE>BBS水木清华站∶精华区</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<META content="MSHTML 5.00.2614.3500" name=GENERATOR></HEAD>
<BODY>
<CENTER>
<H1>BBS水木清华站∶精华区</H1></CENTER>发信人:&nbsp;orbix&nbsp;(小鱼),&nbsp;信区:&nbsp;Hacker&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;DES源程序之头文件&nbsp;<BR>发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Mon&nbsp;Apr&nbsp;20&nbsp;22:53:30&nbsp;1998)&nbsp;<BR>&nbsp;<BR>自己改写过,请指教&nbsp;<BR>#ifndef&nbsp;__DES_H&nbsp;<BR>#define&nbsp;__DES_H&nbsp;<BR>&nbsp;<BR>class&nbsp;DES&nbsp;<BR>{&nbsp;<BR>public:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Encrypt/decrypt&nbsp;the&nbsp;data&nbsp;in&nbsp;"data",&nbsp;according&nbsp;to&nbsp;the&nbsp;"key".&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Caller&nbsp;is&nbsp;responsible&nbsp;for&nbsp;confirming&nbsp;the&nbsp;buffer&nbsp;size&nbsp;of&nbsp;"data"&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;points&nbsp;to&nbsp;is&nbsp;8*"blocks"&nbsp;bytes.&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;The&nbsp;data&nbsp;encrypted/decrypted&nbsp;is&nbsp;stored&nbsp;in&nbsp;data.&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;The&nbsp;return&nbsp;code&nbsp;is&nbsp;1:success,&nbsp;other:failed.&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;encrypt&nbsp;(&nbsp;char&nbsp;key[8],&nbsp;char*&nbsp;data,&nbsp;int&nbsp;blocks&nbsp;=&nbsp;1&nbsp;);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;decrypt&nbsp;(&nbsp;char&nbsp;key[8],&nbsp;char*&nbsp;data,&nbsp;int&nbsp;blocks&nbsp;=&nbsp;1&nbsp;);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Encrypt/decrypt&nbsp;any&nbsp;size&nbsp;data,according&nbsp;to&nbsp;a&nbsp;special&nbsp;method.&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Before&nbsp;calling&nbsp;yencrypt,&nbsp;copy&nbsp;data&nbsp;to&nbsp;a&nbsp;new&nbsp;buffer&nbsp;with&nbsp;size&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;calculated&nbsp;by&nbsp;extend.&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;yencrypt&nbsp;(&nbsp;char&nbsp;key[8],&nbsp;char*&nbsp;data,&nbsp;int&nbsp;size&nbsp;);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;ydecrypt&nbsp;(&nbsp;char&nbsp;key[8],&nbsp;char*&nbsp;in,&nbsp;int&nbsp;blocks,&nbsp;int*&nbsp;size&nbsp;=&nbsp;0&nbsp;);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;extend&nbsp;(&nbsp;int&nbsp;size&nbsp;)&nbsp;{&nbsp;return&nbsp;(size/8+1)*8;&nbsp;};&nbsp;<BR>&nbsp;<BR>private:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;des(unsigned&nbsp;char*&nbsp;in,&nbsp;unsigned&nbsp;char*&nbsp;out,&nbsp;int&nbsp;blocks);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;des_block(unsigned&nbsp;char*&nbsp;in,&nbsp;unsigned&nbsp;char*&nbsp;out);&nbsp;<BR>&nbsp;<BR>private:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;long&nbsp;KnL[32];&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enum&nbsp;Mode&nbsp;{&nbsp;ENCRYPT,&nbsp;DECRYPT&nbsp;};&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;deskey(unsigned&nbsp;char&nbsp;key[8],&nbsp;Mode&nbsp;md);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;usekey(unsigned&nbsp;long&nbsp;*);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;cookey(unsigned&nbsp;long&nbsp;*);&nbsp;<BR>&nbsp;<BR>private:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;scrunch(unsigned&nbsp;char&nbsp;*,&nbsp;unsigned&nbsp;long&nbsp;*);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;unscrun(unsigned&nbsp;long&nbsp;*,&nbsp;unsigned&nbsp;char&nbsp;*);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;desfunc(unsigned&nbsp;long&nbsp;*,&nbsp;unsigned&nbsp;long&nbsp;*);&nbsp;<BR>&nbsp;<BR>private:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;unsigned&nbsp;char&nbsp;Df_Key[24];&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;unsigned&nbsp;short&nbsp;bytebit[8];&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;unsigned&nbsp;long&nbsp;bigbyte[24];&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;unsigned&nbsp;char&nbsp;pc1[56];&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;unsigned&nbsp;char&nbsp;totrot[16];&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;unsigned&nbsp;char&nbsp;pc2[48];&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;unsigned&nbsp;long&nbsp;SP1[64];&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;unsigned&nbsp;long&nbsp;SP2[64];&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;unsigned&nbsp;long&nbsp;SP3[64];&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;unsigned&nbsp;long&nbsp;SP4[64];&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;unsigned&nbsp;long&nbsp;SP5[64];&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;unsigned&nbsp;long&nbsp;SP6[64];&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;unsigned&nbsp;long&nbsp;SP7[64];&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;unsigned&nbsp;long&nbsp;SP8[64];&nbsp;<BR>&nbsp;<BR>};&nbsp;<BR>&nbsp;<BR>#endif&nbsp;<BR>&nbsp;<BR>--&nbsp;<BR>※&nbsp;来源:·BBS&nbsp;水木清华站&nbsp;bbs.net.tsinghua.edu.cn·[FROM:&nbsp;cit.cs.sjtu.edu]&nbsp;<BR>
<CENTER>
<H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -