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

📄 viewdlg.h

📁 这是一个用VC.Net编写的加密算法
💻 H
字号:
// ViewDlg.h : 头文件
//

#pragma once
#include "afxwin.h"

#define SIZE 1024


// CViewDlg 对话框
class CViewDlg : public CDialog
{
// 构造
public:
	CViewDlg(CWnd* pParent = NULL);	// 标准构造函数

// 对话框数据
	enum { IDD = IDD_VIEW_DIALOG };

	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV 支持

		//定义矩阵数组
	//E运算矩阵
	int P[32];
	//逆置换
	int IP_athwart[64];

	//初始置换
	int IP_IP[64] ;	
	      			      			    			  
	//置换选择1数组
	int C1[28];
	int count_count;

	int C2[28];
	//置换选择2数组
	int IP2[48];
	//子密钥算法中的循环移位数组
	int W[16];

	//选择运算E
	int E[48];
		    
	//8个S盒
	int S[8][4][16];

	int Z[64];
	int Z_1[64];
	
	//标致加密解密
	int flag;
	int text;
	//char *test;
	// 实现
protected:
	void Search();
	//bool Search_Directory(CString szFilename);
	//初始化

	void OnInit();
	void code_all(CFile ,CFile ,char []);
	void uncode_all(CFile ,CFile,char []);
	//定义工具函数
	void charTint(char *,int *);  //明文转换为二进制文件
	void intTchar(int *,char *);  //将二进制转换为密文文件
	void convert(int *,int);      //将整形整数转换为4位的二进制码

	//定义密钥产生函数
	void code(int [],int [][48],int [],int []);

	//定义加密函数
	void encrypt(int [],int [],int [][48],int [],int [],int [],int [][4][16]);           //加密算法
	void permute(int *,int *,int *,int *);   //在加密的过程中都是以64个字符串为一个变换单位进行的,所以读取到的字符必须以64个为一个处理单元
	
	//定义解密函数
	void Unpermute(int *,int *,int *);
	void Unencrypt(int [],int [][48],int [],int [],int [],int [][4][16]);

	//基本数据
	CFile fp_ming,fp_code,fp_uncode;
	
	//int bin[64];
	int bin_Uncode[64];
	char char_Uncode[8];
	char ch_code[8];
	int L[32],R[32];
	//char code_char[8];      //记录密钥
	//int code_int[64];       //记录密钥
	int K_Code[16][48];         //16个密钥
	int K_Uncode[16][48];
	int Result_IP[64];

	HICON m_hIcon;

	// 生成的消息映射函数
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	DECLARE_MESSAGE_MAP()
public:
	afx_msg void OnBnClickedOk();
	afx_msg void OnBnClickedCancel();
	afx_msg void OnBnClickedCancel2();
	afx_msg void OnBnClickedIncode();
	afx_msg void OnBnClickedUncode();
	CEdit m_editName;
	CEdit m_editCode;
	afx_msg void OnBnClickedButton1();
	CEdit m_editFile;
	afx_msg void OnBnClickedButton2();
};

⌨️ 快捷键说明

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