📄 newhash.h
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -