newhash.h

来自「aes的原代码」· C头文件 代码 · 共 41 行

H
41
字号
#pragma once
#include "GenKey.h"
#include "AesCrypt.h"
#ifndef SC
#define SC 50
#endif
#ifndef SL
#define SL 16
#endif
#ifndef SUBKL
#define SUBKL 8
#endif
//可变位散列器,这个散列器具有很强的随机性,加入了aes加密和多次反馈
class NewHash
{
public:
	NewHash(unsigned char *pcstr, unsigned char *username, unsigned char *psw, int len1, int len2, int len3, int keyLen=128);
	NewHash(unsigned char *pcstr, unsigned char *username, int len1, int len2, int keyLen=128);
	void iniKey();
	unsigned char *getKey(unsigned char*);
	~NewHash(void);
private:
	//初始化
	void initial();
	//字节序列相互异或
	void xor(unsigned char *buf, unsigned char *a, unsigned char *b, int l);
	GenKey * genKey;
	unsigned char *buffer;			//存放(pcstr)username,psw的集合
	unsigned char key[SL];				//第一次散列的密钥
	//unsigned char *finkey;			//最终的散列序列
	unsigned char k1[SUBKL];
	unsigned char k2[SUBKL];
	unsigned char m[SC][SL];
	unsigned char me[SC][SL];
	unsigned char ha[SL],hb[SL];
	unsigned char r[SL], re[SL];
	int count,mecnt;
	int keyLen;
	bool flg;						//有否初始化的标志
};

⌨️ 快捷键说明

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