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

📄 rsadll.h

📁 一个winsock网络通信程序
💻 H
字号:
#define DATALENGTH 36

//注意:您现在看到的版本只支持DATALENGTH=36,如果需要更长的数据类型,请与我们联系
//网址http://www.wisepeak.com

#ifdef __VERY_SMALL_SCALE__
#define DATALENGTH 36
#endif
#ifdef __SMALL_SCALE__
#define DATALENGTH 68
#endif
#ifdef __MIDDLE_SCALE__
#define DATALENGTH 100
#endif
#ifdef __BIG_SCALE__
#define DATALENGTH 132
#endif
#ifdef __VERY_BIG_SCALE__
#define DATALENGTH 164
#endif


// 用BYTEARRAY保存长整数数据,每个字节保存一个十进制数字,整个数组作为一个数值进行运算
// 数据高位在前低位在后,即BYTEARRAY [0]保存最高位,BYTEARRAY [DATALENGTH-1]保存最低位
typedef signed char BYTEARRAY [DATALENGTH];
////////////////////////////////////////////////////////////////////////
//函数名: InitialRSA
//功能  : 初始化RSA加密系统环境变量
//参数  : 无
//返回值: 无
////////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllexport) void InitialRSA();
////////////////////////////////////////////////////////////////////////
//函数名: AutoGenKeys
//功能  : 自动产生RSA加密系统所需的变量P,Q,Z,SK,PK,N
//         可以通过函数GetPQZ()来获取P,Q,Z;
//         通过函数GetPK_SK_N()来获取SK,PK,N
//说明  : 在进行加密以前,首先要获取加密系统所需的密钥对。通过该函数可以自动获取需要的
//         密钥系统数据,当您接受并采用了这些自动生成的数据后,就可以不必再调用该函数了
//参数  : sklen 私有密钥的长度,私有密钥越长,可能导致计算密钥对的时间越长
//返回值: 返回0时表示失败,其它情况成功
////////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllexport) int AutoGenKeys(int sklen=4);
////////////////////////////////////////////////////////////////////////
//函数名: GetPQZ
//功能  : 用于得到自动生成的Q,P,Z
//参数  : p,q,z分别对应素数P,Q和P*Q
//返回值: 无
////////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllexport) void GetPQZ(BYTEARRAY p, BYTEARRAY q, BYTEARRAY z);
////////////////////////////////////////////////////////////////////////
//函数名: ManGenKeys
//功能  : 通过已有的素数来获取密钥对。可以将自动生成的素数P,Q(或者通过其它方式得到)
//         传入到函数ManGenKeys()中进行。
//参数  : p,q,z 分别对应素数P,Q
//         sklen 私有密钥的长度,私有密钥越长,可能导致计算密钥对的时间越长
//返回值: 返回0时表示失败,其它情况成功
////////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllexport) int ManGenKeys(BYTEARRAY p, BYTEARRAY q, int sklen=4);
////////////////////////////////////////////////////////////////////////
//函数名: ManGenKeys
//功能  : 用于得到密钥对PK,SK和N,该函数必须在调用了AutoGenKeys()或者ManGenKeys()后才有效
//参数  : pk,sk,n分别对应密钥对PK,SK和N
//返回值: 无
////////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllexport) void GetPK_SK_N(BYTEARRAY pk,BYTEARRAY sk,BYTEARRAY n);
// 以上用于生成密钥系统所需数据

////////////////////////////////////////////////////////////////////////
//函数名: SetPK_SK_N
//功能  : 用于设置用于加/解密的公共密钥/私有密钥和N值
//         对于用公钥加密则可以只设置pk和n;对于私钥解密则可以只设置sk和n
//参数  : pk,sk,n分别对应密钥对PK,SK和N
//返回值: 无
////////////////////////////////////////////////////////////////////////
extern "C" __declspec(dllexport) void SetPK_SK_N(BYTEARRAY pk, BYTEARRAY sk, BYTEARRAY n);
// 当已经得到密钥对时,以上用于设置密钥进行加密

////////////////////////////////////////////////////////////////////////
//函数名: RSACrypt
//功能  : 对数据进行加密(flag=0)和解密(flag=1)
//         加/解密前必须先设置好密钥和N
//参数  : intdata 需要进行处理数据
//         outdata 处理完毕后得到的数据
//         datalen 数据长度(按照新的数据类型计算的)
//         flag 加/解密标记,加密(flag=0)和解密(flag=1)
//返回值: 0成功,1公共密钥非法,2私有密钥非法
////////////////////////////////////////////////////////////////////////
//注意:每个要加密数据大小不能大于P*Q
extern "C" __declspec(dllexport) int RSACrypt(BYTEARRAY intdata[],BYTEARRAY outdata[],int datalen,int flag); 

⌨️ 快捷键说明

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