基于VC的Ceasar加密和解密技术

本文介绍了一种基于VC++的Ceasar加密和解密技术实现方案,详细展示了使用Microsoft Visual Studio C++ 6.0进行开发的具体步骤,包括应用程序界面设计、变量连接和方法命名等,并提供了部分核心代码示例。
基于VCCeasar加密和解密技术
一、Clear原理
对每一明文字母P,代换成密文字母C:
C=E(P)=(P+3) mod (26)
移位就可以是任意整数K,这样就得到了一般的Ceasar算法:
C=E(P)=(P+K) mod (26)
这里K的取值范围从1到25。解密算法是:
P=D(C)=(C-K)mod (26)
二、开发平台及语言
1、开发平台:Microsoft Visual Studio c++ 6.0
2.语言: c++
三、应用程序界面设计及变量的连接和方法的名称
对象
ID
Caption
连接变量或方法
成组框
IDC_STATIC
产生密钥
编辑框
IDC_NUMBER_EDIT
m_NumberEdit/CEdit
编辑框
IDC_RESOURCE_EDIT
m_ResourceEdit/CEdit
OnChangeResourceEdit()
编辑框
IDC_ENCRYPT_EDIT
m_EncryptEdit/CEdit
编辑框
IDC_OPEN_EDIT
m_OpenEdit/CEdit
编辑框
IDC_LINE
m_Line/CEdit
编辑框
IDC_CHAR
m_Char/CEdit
编辑框
IDC_KEY_EDIT
m_KeyEdit/CEdit
命令按钮
IDC_CLEARNUM_BUTTON
重置
OnClearnumButton()
命令按钮
IDC_HIDEKEY_BUTTON
隐藏密钥
OnHidekeyButton()
命令按钮
IDC_SHOWKEY_BUTTON
显示密钥
OnShowkeyButton()
命令按钮
IDC_CLEARKEY_BUTTON
重置
OnClearkeyButton()
命令按钮
IDC_HIDETEXT_BUTTON
隐藏密文
OnHidetextButton()
命令按钮
IDC_SHOWTEXT_BUTTON
显示密文
OnShowtextButton()
命令按钮
IDC_OK_BUTTON
确定
OnOkButton()
命令按钮
IDC_CLEAR_BUTTON
Clear
OnClearButton()
命令按钮
IDC_EXIT_BUTTON
Exit
OnExitButton()
命令按钮
IDC_ENCRYPT_BUTTON
加密
OnEncryptButton()
命令按钮
IDC_OPEN_BUTTON
解密
OnOpenButton()
编辑框
IDC_FORCE_OPEN_EDIT
m_ForceOpenEdit/CEdit
编辑框
IDC_GETENCRYPT_EDIT
m_GetEncryptEdit/CEdit
菜单
ID_ENCRYPT_MENU
加密
OnEncryptMenu()
菜单
ID_OPEN_MENU
解密
OnOpenMenu()
菜单
ID_CLEAR_MENU
清除
OnClearMenu()
菜单
ID_EXIT_MENU
退出
OnExitMenu()
菜单
ID_ABOUT_MENU
关于
OnAboutMenu()
四、CeasarDlg.h声明
// CeasarDlg.h : header file
#if !defined(AFX_CEASARDLG_H__E2ECB937_D748_475D_BDA2_6D8728998EFC__INCLUDED_)
#define AFX_CEASARDLG_H__E2ECB937_D748_475D_BDA2_6D8728998EFC__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
Const char lowerArray[26]={'a','b','c','d','e','f','g','h','i','j','k','l',
'm','n','o','p','q','r','s','t','u','v','w','x','y','z'};
const char upperArray[26]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','
Q','R','S','T','U','V','W','X','Y','Z'};
/////////////////////////////////////////////////////////////////////////////
// CCeasarDlg dialog
class CCeasarDlg : public CDialog
{
// Construction
public:
CCeasarDlg(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CCeasarDlg)
enum { IDD = IDD_CEASAR_DIALOG };
CEdit m_GetEncryptEdit;
CEdit m_GetEnryptEdit;
CEdit m_ForceOpenEdit;
CEdit m_NumberEdit;
CEdit m_KeyEdit;
CEdit m_EncryptEdit;
CEdit m_ResourceEdit;
CEdit m_OpenEdit;
CEdit m_Line;
CEdit m_Char;
CEdit m_keyEdit;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CCeasarDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon;
// Generated message map functions
//{{AFX_MSG(CCeasarDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnClearkeyButton();
afx_msg void OnHidekeyButton();
afx_msg void OnShowkeyButton();
afx_msg void OnChangeResourceEdit();
afx_msg void OnClearButton();
afx_msg void OnExitButton();
afx_msg void OnHidetextButton();
afx_msg void OnShowtextButton();
afx_msg void OnEncryptButton();
afx_msg void OnOpenButton();
afx_msg void OnOkButton();
afx_msg void OnClearnumButton();
afx_msg void OnEncryptMenu();
afx_msg void OnOpenMenu();
afx_msg void OnExitMenu();
afx_msg void OnClearMenu();
afx_msg void OnAboutMenu();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_CEASARDLG_H__E2ECB937_D748_475D_BDA2_6D8728998EFC__INCLUDED_)
五、映射消息的应用程序代码
1、void CCeasarDlg::OnClearkeyButton()
{
// TODO: Add your control notification handler code here
m_KeyEdit.SetSel(0,-1);
m_KeyEdit.ReplaceSel("");
}
2、void CCeasarDlg::OnHidekeyButton()
{
// TODO: Add your control notification handler code here
m_KeyEdit.ShowWindow(SW_HIDE);
}
3、void CCeasarDlg::OnShowkeyButton()
{
// TODO: Add your control notification handler code here
m_KeyEdit.ShowWindow(SW_SHOW);
}
4、void CCeasarDlg::OnChangeResourceEdit()
{
// TODO: Add your control notification handler code here
CString METext;
char Count[10];
int nCharNum,nLineNum;
m_ResourceEdit.GetWindowText(METext);
nCharNum=METext.GetLength();
nLineNum=m_ResourceEdit.GetLineCount();
itoa(nCharNum,Count,10);
m_Char.SetWindowText(Count);
itoa(nLineNum,Count,10);
m_Line.SetWindowText(Count);
}
5、void CCeasarDlg::OnClearButton()
{
// TODO: Add your control notification handler code here
m_ResourceEdit.SetSel(0,-1);
m_ResourceEdit.ReplaceSel("");
m_EncryptEdit.SetSel(0,-1);
m_EncryptEdit.ReplaceSel("");
m_OpenEdit.SetSel(0,-1);
m_OpenEdit.ReplaceSel("");
UpdateData(FALSE);
}
6、void CCeasarDlg::OnExitButton()
{
// TODO: Add your control notification handler code here
OnOK();
}
7、void CCeasarDlg::OnHidetextButton()
{
// TODO: Add your control notification handler code here
m_EncryptEdit.ShowWindow(SW_HIDE);
}
8、void CCeasarDlg::OnShowtextButton()
{
// TODO: Add your control notification handler code here
m_EncryptEdit.ShowWindow(SW_SHOW);
}
9、void CCeasarDlg::OnEncryptButton()
{
// TODO: Add your control notification handler code here
char sArray[10];
int nCount;
int nKey;
m_Char.GetWindowText(sArray,10);
nCount=atoi(sArray);
m_KeyEdit.GetWindowText(sArray,10);
nKey=atoi(sArray);
char sResourceText[300];
char sEncryptText[300];
char *pResourceText=sResourceText;
char *pEncryptText=sEncryptText;
m_ResourceEdit.GetWindowText(sResourceText,300);
int nTemp1,nTemp2,i,j;
for(i=0;i<nCount;i++)
{
if((*pResourceText>='A'&&*pResourceText<='Z')||(*pResourceText>='a'&&*pResourceText<='z'))
{
if(*pResourceText>='A'&&*pResourceText<='Z')
{
for(j=0;j<26;j++)
if(upperArray[j]==*pResourceText)
{
nTemp1=j;
break;
}
nTemp2=(nTemp1+nKey%26)%26;
*pEncryptText=upperArray[nTemp2];
}
else
{
for(j=0;j<26;j++)
if(lowerArray[j]==*pResourceText)
{
nTemp1=j;
break;
}
nTemp2=(nTemp1+nKey%26)%26;
*pEncryptText=lowerArray[nTemp2];
}
}
else
*pEncryptText=*pResourceText;
pResourceText++;
pEncryptText++;
}
*pEncryptText='\0';
m_EncryptEdit.SetWindowText(sEncryptText);
}
10、void CCeasarDlg::OnOpenButton()
{
// TODO: Add your control notification handler code here
char sArray[10];
int nCount;
int nKey;
m_Char.GetWindowText(sArray,10);
nCount=atoi(sArray);
m_KeyEdit.GetWindowText(sArray,10);
nKey=atoi(sArray);
char sOpenText[300];
char sEncryptText[300];
char *pOpenText=sOpenText;
char *pEncryptText=sEncryptText;
m_EncryptEdit.GetWindowText(sEncryptText,300);
int nTemp1,nTemp2,i,j;
for(i=0;i<nCount;i++)
{
if((*pEncryptText>='A'&&*pEncryptText<='Z')||(*pEncryptText>='a'&&*pEncryptText<='z'))
{
if(*pEncryptText>='A'&&*pEncryptText<='Z')
{
for(j=0;j<26;j++)
if(upperArray[j]==*pEncryptText)
{
nTemp1=j;
break;
}
nTemp2=(nTemp1-nKey%26+26)%26;
*pOpenText=upperArray[nTemp2];
}
else
{
for(j=0;j<26;j++)
if(lowerArray[j]==*pEncryptText)
{
nTemp1=j;
break;
}
nTemp2=(nTemp1-nKey%26+26)%26;
*pOpenText=lowerArray[nTemp2];
}
}
else
*pOpenText=*pEncryptText;
pEncryptText++;
pOpenText++;
}
*pOpenText='\0';
m_OpenEdit.SetWindowText(sOpenText);
}
11、void CCeasarDlg::OnOkButton()
{
// TODO: Add your control notification handler code here
char sArray[10];
int nCount;
int nNumber;
m_Char.GetWindowText(sArray,10);
nCount=atoi(sArray);
m_NumberEdit.GetWindowText(sArray,10);
nNumber=atoi(sArray);
char sForceOpenText[300];
char sGetEncryptText[300];
char *pForceOpenText=sForceOpenText;
char *pGetEncryptText=sGetEncryptText;
m_GetEncryptEdit.GetWindowText(sGetEncryptText,300);
int nTemp1,nTemp2,i,j;
for(i=0;i<nCount;i++)
{
if((*pGetEncryptText>='A'&&*pGetEncryptText<='Z')||(*pGetEncryptText>='a'&&*pGetEncryptText<='z'))
{
if(*pGetEncryptText>='A'&&*pGetEncryptText<='Z')
{
for(j=0;j<26;j++)
if(upperArray[j]==*pGetEncryptText)
{
nTemp1=j;
break;
}
nTemp2=(nTemp1-nNumber+26)%26;
*pForceOpenText=upperArray[nTemp2];
}
else
{
for(j=0;j<26;j++)
if(lowerArray[j]==*pGetEncryptText)
{
nTemp1=j;
break;
}
nTemp2=(nTemp1-nNumber+26)%26;
*pForceOpenText=lowerArray[nTemp2];
}
}
else
*pForceOpenText=*pGetEncryptText;
pGetEncryptText++;
pForceOpenText++;
}
*pForceOpenText='\0';
m_ForceOpenEdit.SetWindowText(sForceOpenText);
}
12、void CCeasarDlg::OnClearnumButton()
{
// TODO: Add your control notification handler code here
m_NumberEdit.SetSel(0,-1);
m_NumberEdit.ReplaceSel("");
m_ForceOpenEdit.SetSel(0,-1);
m_ForceOpenEdit.ReplaceSel("");
m_GetEncryptEdit.SetSel(0,-1);
m_GetEncryptEdit.ReplaceSel("");
}
13、void CCeasarDlg::OnEncryptMenu()
{
// TODO: Add your command handler code here
OnEncryptButton();
}
14、void CCeasarDlg::OnOpenMenu()
{
// TODO: Add your command handler code here
OnOpenButton();
}
15、void CCeasarDlg::OnExitMenu()
{
// TODO: Add your command handler code here
OnExitButton();
}
16、void CCeasarDlg::OnClearMenu()
{
// TODO: Add your command handler code here
OnClearButton();
}
17、void CCeasarDlg::OnAboutMenu()
{
// TODO: Add your command handler code here
MessageBox("This is a Clear!");
}
2010/11/23 16:55 . 2010/11/23 16:55 .. 1998/11/19 12:10 4,187 3way.cpp 1998/12/12 14:23 1,194 3way.h 1998/01/16 23:01 314 3wayval.dat 1998/12/31 20:37 8,977 algebra.cpp 1998/12/29 23:53 7,012 algebra.h 1998/11/19 12:10 2,105 asn.cpp 1998/12/18 19:17 1,486 asn.h 1998/11/19 12:10 2,483 base64.cpp 1998/12/12 14:23 1,087 base64.h 1998/12/31 23:07 24,990 bench.cpp 1998/11/19 12:11 104 bench.h 1998/11/19 12:10 14,267 bfinit.cpp 1998/11/19 12:10 2,443 blowfish.cpp 1998/12/12 14:23 1,177 blowfish.h 1998/01/16 23:01 672 blum1024.dat 1998/01/16 23:01 1,320 blum2048.dat 1998/01/16 23:01 350 blum512.dat 1998/11/29 18:42 3,650 blumgold.cpp 1998/12/12 14:23 1,463 blumgold.h 1998/11/19 12:10 1,068 blumshub.cpp 1998/12/12 14:23 1,107 blumshub.h 1998/11/19 12:10 10,670 cast.cpp 1998/12/12 14:23 1,178 cast.h 1998/11/19 12:10 29,906 cast128s.cpp 1998/11/19 17:59 250 castval.dat 1998/11/19 12:10 4,972 cbc.cpp 1998/12/12 14:23 1,997 cbc.h 1998/12/18 19:17 3,258 config.h 1998/11/19 12:10 4,147 crc.cpp 1998/12/12 14:23 707 crc.h 1998/12/29 23:53 7,060 cryptest.dsp 1998/11/23 22:01 819 cryptest.dsw 1998/12/18 20:13 4,119 cryptlib.cpp 1998/12/29 23:53 13,140 cryptlib.dsp 1999/01/01 00:04 22,994 cryptlib.h 1998/11/24 21:26 5,327 default.cpp 1998/12/12 14:23 1,084 default.h 1998/11/19 12:10 12,518 des.cpp 1998/12/12 14:23 2,599 des.h 1998/01/16 23:01 8,892 descert.dat 1998/11/19 12:10 6,038 dessp.cpp 1998/12/29 23:53 2,030 dh.cpp 1998/12/31 20:37 1,354 dh.h 1998/12/29 23:47 276 dh1024.dat 1998/12/29 23:53 579 dh2.cpp 1998/12/29 23:53 1,607 dh2.h 1998/12/29 23:47 536 dh2048.dat 1998/12/20 18:49 158 dh512.dat 1998/11/19 12:10 18,466 diamond.cpp 1998/01/16 23:01 622 diamond.dat 1998/12/12 14:23 2,868 diamond.h 1998/11/19 12:10 151,497 diamondt.cpp 1998/12/18 19:17 5,771 dsa.cpp 1998/12/18 19:17 2,777 dsa.h 1998/01/16 23:01 9,352 dsa1024.dat 1998/01/16 23:01 598 dsa512.dat 1998/12/29 23:53 5,017 ec2n.cpp 1998/12/29 23:53 2,735 ec2n.h 1998/12/31 20:37 9,179 eccrypto.cpp 1998/12/31 20:37 6,687 eccrypto.h 1998/12/29 23:53 5,939 ecp.cpp 1998/12/29 23:53 2,944 ecp.h 1998/12/18 19:17 4,415 elgamal.cpp 1998/12/18 19:18 1,795 elgamal.h 1998/01/16 23:01 804 elgc1024.dat 1998/01/16 23:01 1,578 elgc2048.dat 1998/01/16 23:01 414 elgc512.dat 1998/11/19 12:11 1,941 eprecomp.cpp 1998/12/12 14:23 1,482 eprecomp.h 1998/12/18 19:18 1,925 files.cpp 1998/12/18 19:18 1,566 files.h 1998/11/19 12:11 1,403 filters.cpp 1998/12/12 14:23 2,648 filters.h 1998/11/19 12:11 3,240 forkjoin.cpp 1998/12/12 14:23 3,221 forkjoin.h 1998/11/19 12:11 626 gf256.cpp 1998/12/12 14:23 1,233 gf256.h 1998/12/29 23:53 14,957 gf2n.cpp 1998/12/29 23:53 8,758 gf2n.h 1998/11/19 12:11 1,754 gf2_32.cpp 1998/12/12 14:23 1,243 gf2_32.h 1998/11/19 12:11 3,926 gost.cpp 1998/12/12 14:23 1,113 gost.h 1998/01/16 23:01 846 gostval.dat 1998/12/18 19:18 4,030 gzip.cpp 1998/12/12 14:23 2,121 gzip.h 1998/11/19 12:11 15,431 haval.cpp 1998/12/12 14:23 1,551 haval.h 1998/01/16 23:01 484 havalcer.dat 1998/11/19 12:11 455 hex.cpp 1998/12/12 14:23 1,173 hex.h 1998/12/12 14:23 1,488 hmac.h 1998/11/19 12:11 6,222 idea.cpp 1998/12/12 14:23 1,074 idea.h 1998/01/16 23:01 770 ideaval.dat 1998/12/29 23:53 51,305 integer.cpp 1998/12/12 14:23 10,304 integer.h 1998/11/19 12:11 2,422 iterhash.cpp 1998/12/12 14:23 869 iterhash.h 1999/01/01 00:10 2,601 license.txt 1998/12/12 14:23 2,633 lubyrack.h 1998/12/29 23:53 10,824 luc.cpp 1998/12/29 23:53 8,243 luc.h 1998/01/16 23:01 684 luc1024.dat 1998/01/16 23:01 1,332 luc2048.dat 1998/01/16 23:01 362 luc512.dat 1998/01/16 23:01 602 lucc1024.dat 1998/01/16 23:01 326 lucc512.dat 1998/01/16 23:01 144 lucdif.dat 1998/01/16 23:01 920 lucs1024.dat 1998/01/16 23:01 496 lucs512.dat 1998/01/21 19:10 601 Makefile 1998/11/24 21:26 6,092 mars.cpp 1998/12/12 14:23 1,086 mars.h 1998/11/24 21:26 6,795 marss.cpp 1998/12/20 18:49 1,030 marsval.dat 1998/12/18 19:18 4,607 md2.cpp 1998/12/18 19:18 457 md2.h 1998/11/24 21:26 4,383 md5.cpp 1998/12/12 14:23 671 md5.h 1998/11/19 12:11 5,369 md5mac.cpp 1998/12/12 14:23 683 md5mac.h 1998/12/12 14:23 1,222 mdc.h 1998/11/24 21:26 1,565 misc.cpp 1998/12/12 14:23 6,121 misc.h 1998/12/29 23:53 4,134 modarith.h 1998/11/19 12:11 3,108 modes.cpp 1998/12/12 14:23 3,522 modes.h 1998/12/12 14:23 2,342 modexppc.cpp 1998/12/12 14:15 1,147 modexppc.h 1998/12/31 20:37 3,198 mqv.cpp 1998/12/31 20:37 1,820 mqv.h 1998/12/29 23:48 580 mqv1024.dat 1998/12/29 23:48 1,112 mqv2048.dat 1998/12/29 23:47 308 mqv512.dat 1998/12/29 23:53 25,117 nbtheory.cpp 1998/12/29 23:53 5,140 nbtheory.h 1998/12/18 19:18 4,359 nr.cpp 1998/12/18 19:18 3,202 nr.h 1998/01/16 23:01 892 nr1024.dat 1998/01/16 23:01 1,694 nr2048.dat 1998/01/16 23:01 476 nr512.dat 1998/12/18 19:18 3,036 oaep.cpp 1998/12/18 19:18 630 oaep.h 1998/01/16 23:01 18 pch.cpp 1998/12/12 14:23 278 pch.h 1998/12/18 19:18 4,208 pkcspad.cpp 1998/12/18 19:18 1,861 pkcspad.h 1998/12/18 19:18 13,392 polynomi.cpp 1998/12/12 14:23 14,895 polynomi.h 1998/12/18 19:18 5,181 pssr.h 1998/12/18 19:18 2,622 pubkey.cpp 1998/12/18 20:13 10,958 pubkey.h 1998/11/19 12:11 5,280 queue.cpp 1998/12/12 14:23 1,296 queue.h 1998/01/16 23:01 684 rabi1024.dat 1998/01/16 23:01 1,334 rabi2048.dat 1998/01/16 23:01 360 rabi512.dat 1998/12/18 19:18 3,774 rabin.cpp 1998/12/18 19:18 2,827 rabin.h 1998/11/19 12:11 2,190 randpool.cpp 1998/12/12 14:23 1,213 randpool.h 1998/11/24 21:26 3,555 rc2.cpp 1998/12/12 14:23 1,268 rc2.h 1998/12/20 18:49 618 rc2val.dat 1998/11/19 12:11 2,691 rc5.cpp 1998/12/12 14:23 1,319 rc5.h 1998/01/16 23:01 350 rc5val.dat 1998/11/19 17:59 3,345 rc6.cpp 1998/12/12 14:23 1,310 rc6.h 1998/12/20 18:49 728 rc6val.dat 1998/11/19 12:11 9,978 ripemd.cpp 1998/12/12 14:23 689 ripemd.h 1998/11/19 12:11 2,860 rng.cpp 1998/12/12 14:23 1,950 rng.h 1998/12/18 19:18 3,420 rsa.cpp 1998/12/18 19:18 4,462 rsa.h 1998/01/16 23:01 1,212 rsa1024.dat 1998/01/16 23:01 2,378 rsa2048.dat 1998/12/20 18:49 204 rsa400pb.dat 1998/12/20 18:49 892 rsa400pv.dat 1998/01/16 23:01 632 rsa512.dat 1998/01/16 23:01 1,380 rsa512a.dat 1998/12/18 19:18 5,241 rw.cpp 1998/12/18 19:18 3,670 rw.h 1998/12/20 18:49 674 rw1024.dat 1998/12/20 18:49 1,320 rw2048.dat 1998/12/20 18:49 348 rw512.dat 1998/11/19 12:11 6,366 safer.cpp 1998/12/12 14:23 3,897 safer.h 1998/01/16 23:01 1,024 saferval.dat 1998/11/19 12:11 4,400 sapphire.cpp 1998/12/12 14:23 3,181 sapphire.h 1998/11/19 12:11 4,071 seal.cpp 1998/12/12 14:23 1,166 seal.h 1998/11/24 21:26 5,101 secshare.cpp 1998/12/12 14:23 1,666 secshare.h 1998/11/19 12:11 1,454 secsplit.cpp 1998/12/12 14:23 713 secsplit.h 1998/12/18 19:18 8,545 sha.cpp 1998/12/18 19:18 707 sha.h 1998/11/19 12:11 5,393 shark.cpp 1998/12/12 14:23 1,546 shark.h 1998/11/19 12:11 121,963 sharkbox.cpp 1998/01/16 23:01 490 sharkval.dat 1998/12/12 14:23 2,976 smartptr.h 1998/11/19 12:11 5,498 square.cpp 1998/12/12 14:23 1,199 square.h 1998/11/19 12:11 32,669 squaretb.cpp 1998/01/16 23:01 816 squareva.dat 1998/11/19 12:11 1,631 tea.cpp 1998/12/12 14:23 973 tea.h 1998/12/29 23:53 12,167 test.cpp 1998/11/23 21:54 2,477 tiger.cpp 1998/12/12 14:23 875 tiger.h 1998/11/19 12:11 44,710 tigertab.cpp 1998/11/19 12:11 886 usage.dat 1998/12/29 23:53 23,376 validat1.cpp 1998/12/31 23:07 16,623 validat2.cpp 1998/12/18 19:18 16,160 validat3.cpp 1998/12/29 23:53 1,029 validate.h 1998/11/19 12:11 3,934 wake.cpp 1998/12/12 14:23 1,206 wake.h 1998/12/12 14:23 2,116 words.h 1998/12/12 14:23 3,816 xormac.h 1998/11/19 12:11 2,006 zbits.cpp 1998/12/12 14:23 459 zbits.h 1998/11/19 12:11 22,047 zdeflate.cpp 1998/12/12 14:23 2,868 zdeflate.h 1998/12/18 19:18 26,795 zinflate.cpp 1998/12/12 14:23 1,760 zinflate.h 1998/11/24 21:26 28,360 ztrees.cpp 1998/12/12 14:23 5,780 ztrees.h 233 个文件 1,316,136 字节 2 个目录 12,766,175,232 可用字节
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值