rsa_san.h

来自「将公钥加密算法RSA应用于小型文件加密。将任意文件加密成文本的解决方案」· C头文件 代码 · 共 51 行

H
51
字号
// This is a slow but easy RSA encryption class
// By sanicle,2005.12 
// 3mn@3mn.net

#include "vlong.h"

#define PRIME_COUNT 1000000

class RSA_san
{
  public:
	char r1[70];
	char r2[70];
	vlong n,e,d,p,q;
	vlong result;
	vlong prime_table[PRIME_COUNT];
	int prime_table_use;
	int prime_p_index;
	int prime_q_index;

	RSA_san();
	~RSA_san();
	vlong encrypt( const vlong& x ); 
	vlong decrypt( const vlong& y );
	int RSA_san_en(char * s,unsigned n);
	int RSA_san_en_byte(char b);
	int RSA_san_dn(char * s,unsigned n);
	int RSA_san_dn_hexstring(char * s);
	int RSA_san_en_hexstring(char * s);
	char* hexstring2string(char * h);

	char* string2hexstring(char * s);//,unsigned len)
	char* vlong2hexstring( const vlong& v );
	//unsigned* vlong2ints( const vlong& v );
	char* vlong2shortints( const vlong& v );
	
	int set_e(char * e);
	int force_e(char * r,unsigned len);
	int force_d(char * r,unsigned len);
	int force_n(char * r,unsigned len);
	int update_pq(char * ra,char * rb);
	

  private:

    char s[255];
	unsigned u[127];
	void find_prime();
	void random_e();
	void calculate_d();
};

⌨️ 快捷键说明

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