📄 rsadll.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 + -