/**
* @author Ma Bingyao(andot@ujn.edu.cn)
* @copyright CoolCode.CN
* @package DOTNET_PHPRPC_SERVER
* @version 2.1
* @last_update 2006-07-14
* @link http://www.coolcode.cn/?p=195
*/
using System;
using System.Collections;
namespace PHPRPC
{
public class KeyPairGen
{
private static Hashtable[] __keypair;
private static Random __rand;
private KeyPairGen()
{
}
static KeyPairGen()
{
__keypair = new Hashtable[100];
__rand = new Random();
__keypair[0] = new Hashtable();
__keypair[0]["p"] = "306445671025081956996370319509056501347";
__keypair[0]["g"] = "92413547833214142968897957352108498589";
__keypair[1] = new Hashtable();
__keypair[1]["p"] = "300810662667076889168325845693486475947";
__keypair[1]["g"] = "94841094728784155978991781885772642058";
__keypair[2] = new Hashtable();
__keypair[2]["p"] = "262703348416928087239921451427419542979";
__keypair[2]["g"] = "151899270484325624076019610094655390991";
__keypair[3] = new Hashtable();
__keypair[3]["p"] = "225882307881118470452078181173166305939";
__keypair[3]["g"] = "146187764180837234261872614849142175797";
__keypair[4] = new Hashtable();
__keypair[4]["p"] = "197459784771344210895138629520222696539";
__keypair[4]["g"] = "106037943662121708619125540139877982159";
__keypair[5] = new Hashtable();
__keypair[5]["p"] = "338428142173232710079286485106598491527";
__keypair[5]["g"] = "114588737480357170664127587420633911000";
__keypair[6] = new Hashtable();
__keypair[6]["p"] = "279323736708786690736269122973225963047";
__keypair[6]["g"] = "125415752495614294995770134097345877203";
__keypair[7] = new Hashtable();
__keypair[7]["p"] = "317773985990101790602716758553789410627";
__keypair[7]["g"] = "104878879673448480771761485715595198682";
__keypair[8] = new Hashtable();
__keypair[8]["p"] = "279790805779853720259018579120737034227";
__keypair[8]["g"] = "89969700069490444594417151100868176845";
__keypair[9] = new Hashtable();
__keypair[9]["p"] = "326578703476159991749011719937648307343";
__keypair[9]["g"] = "168488673614357504655301686402641829206";
__keypair[10] = new Hashtable();
__keypair[10]["p"] = "212374821894546594632039336521362764027";
__keypair[10]["g"] = "98520493887725906639419198385919072981";
__keypair[11] = new Hashtable();
__keypair[11]["p"] = "220275651708192653589862324058994426179";
__keypair[11]["g"] = "98285354945440619083061028422329502572";
__keypair[12] = new Hashtable();
__keypair[12]["p"] = "217846041012566310276457186505150683907";
__keypair[12]["g"] = "147909894249551384547551697283793855077";
__keypair[13] = new Hashtable();
__keypair[13]["p"] = "174927533557787808306892743744711437879";
__keypair[13]["g"] = "144516515685724962866893054023914869621";
__keypair[14] = new Hashtable();
__keypair[14]["p"] = "263649208775421423081860427116927342063";
__keypair[14]["g"] = "130489354427058236031391099789686826748";
__keypair[15] = new Hashtable();
__keypair[15]["p"] = "274686661259670860875388364563963539943";
__keypair[15]["g"] = "105593271531265916484687664617520156048";
__keypair[16] = new Hashtable();
__keypair[16]["p"] = "263535901960402220156530554154966714199";
__keypair[16]["g"] = "92490035318987129921744850770275774626";
__keypair[17] = new Hashtable();
__keypair[17]["p"] = "267008682429796560832057457649647768963";
__keypair[17]["g"] = "106475289955785388340794382595858052644";
__keypair[18] = new Hashtable();
__keypair[18]["p"] = "201512987392556988926377314981688549223";
__keypair[18]["g"] = "110750686864903119381742150309945568680";
__keypair[19] = new Hashtable();
__keypair[19]["p"] = "177996851458193080626066034818515638547";
__keypair[19]["g"] = "122888091488153659991298667843914060819";
__keypair[20] = new Hashtable();
__keypair[20]["p"] = "317756258306961645425930658104172649307";
__keypair[20]["g"] = "130321727939584362402474898302522870558";
__keypair[21] = new Hashtable();
__keypair[21]["p"] = "216728946045530273394861772132947026663";
__keypair[21]["g"] = "107508633999625048442983576270074175538";
__keypair[22] = new Hashtable();
__keypair[22]["p"] = "306716451207622567836510379890114657299";
__keypair[22]["g"] = "134361985906416805868617751983606231865";
__keypair[23] = new Hashtable();
__keypair[23]["p"] = "286875969787342911094776734535660966899";
__keypair[23]["g"] = "136596300560798162216176678412746384180";
__keypair[24] = new Hashtable();
__keypair[24]["p"] = "316932282385937885056420804560269990303";
__keypair[24]["g"] = "168648974343867428422606680564391083338";
__keypair[25] = new Hashtable();
__keypair[25]["p"] = "248535943207411894615228219370779816139";
__keypair[25]["g"] = "124803453877284629232416057096414029493";
__keypair[26] = new Hashtable();
__keypair[26]["p"] = "282313312583128035905137891227588552299";
__keypair[26]["g"] = "153655981496172455412357501132372531789";
__keypair[27] = new Hashtable();
__keypair[27]["p"] = "180419012535215072730338459625643384727";
__keypair[27]["g"] = "113506160977456929769610426423108338151";
__keypair[28] = new Hashtable();
__keypair[28]["p"] = "290084473184460433291463440778504416487";
__keypair[28]["g"] = "93397659497221384793023521292264154570";
__keypair[29] = new Hashtable();
__keypair[29]["p"] = "196709505907896309622988024268124743527";
__keypair[29]["g"] = "134194359418942932239701550500737242970";
__keypair[30] = new Hashtable();
__keypair[30]["p"] = "243251875213731919437184039955454966503";
__keypair[30]["g"] = "124484501691262404843153042315532929373";
__keypair[31] = new Hashtable();
__keypair[31]["p"] = "217329666561072914217547509615443350307";
__keypair[31]["g"] = "149985557447420440273152603093802161404";
__keypair[32] = new Hashtable();
__keypair[32]["p"] = "272380870894875213254987506319160803159";
__keypair[32]["g"] = "142274875352607819135093769715484862352";
__keypair[33] = new Hashtable();
__keypair[33]["p"] = "245229387426683320338400551626100057479";
__keypair[33]["g"] = "131641092657767513998697202814845356551";
__keypair[34] = new Hashtable();
__keypair[34]["p"] = "177372630937568711682579836089194660539";
__keypair[34]["g"] = "143350126097544110167999723391890700438";
__keypair[35] = new Hashtable();
__keypair[35]["p"] = "259644386575850932480083537627014172719";
__keypair[35]["g"] = "112414609443595115868135084553255687805";
__keypair[36] = new Hashtable();
__keypair[36]["p"] = "335967298167060640634079090008211808163";
__keypair[36]["g"] = "130440122047225817753327470055626359834";
__keypair[37] = new Hashtable();
__keypair[37]["p"] = "335576282425004549362717561503482157023";
__keypair[37]["g"] = "144425376684024076172377001881208637852";
__keypair[38] = new Hashtable();
__keypair[38]["p"] = "284248262918402198351823277462241233847";
__keypair[38]["g"] = "155252391699281200485572804488506019735";
__keypair[39] = new Hashtable();
__keypair[39]["p"] = "173013876172316895408171909860229876443";
__keypair[39]["g"] = "158175492457765209549332701341040263092";
__keypair[40] = new Hashtable();
__keypair[40]["p"] = "314215771089915478352876696278661258483";
__keypair[40]["g"] = "151623874272397653744373584789166829885";
__keypair[41] = new Hashtable();
__keypair[41]["p"] = "214233155657651012655056109308614194263";
__keypair[41]["g"] = "107308075921244279423019877320301083606";
__keypair[42] = new Hashtable();
__keypair[42]["p"] = "225331404245982703298762795880953403023";
__keypair[42]["g"] = "166642473032263734779876647882509181134";
__keypair[43] = new Hashtable();
__keypair[43]["p"] = "264439030414674942009663133992239336147";
__keypair[43]["g"] = "146105600210097920574314743578763021525";
__keypair[44] = new Hashtable();
__keypair[44]["p"] = "315947111644085547862244208505842379559";
__keypair[44]["g"] = "98715375481140349146032848367994906070";
__keypair[45] = new Hashtable();
__keypair[45]["p"] = "207725953144445487422192024963999875163";
__keypair[45]["g"] = "131196420606139884378523664886031480775";
__keypair[46] = new Hashtable();
__keypair[46]["p"] = "309071636510197412095288303750182362543";
__keypair[46]["g"] = "113582648463229916704010575767566062572";
__keypair[47] = new Hashtable();
__keypair[47]["p"] = "243295894575359224669702294527365296583";
__keypair[47]["g"] = "150339090497347183180363344810495221090";
__keypair[48] = new Hashtable();
__keypair[48]["p"] = "208178850456513509447399274741740399747";
__keypair[48]["g"] = "98631562237403412128660562813607860199";
__keypair[49] = new Hashtable();
__keypair[49]["p"] = "316314171041412236966299771680200798327";
__keypair[49]["g"] = "138546243893061812710867061083411849443";
__keypair[50] = new Hashtable();
__keypair[50]["p"] = "176139414076184959622813948884813201583";
__keypair[50]["g"] = "142586501859894256158563170690785659134";
__keypair[51] = new Hashtable();
__keypair[51]["p"] = "272519924404472277730397929903963734983";
__keypair[51]["g"] = "95196277130936684545813834742922027519";
__keypair[52] = new Hashtable();
__keypair[52]["p"] = "292284455854279026977794775407111520939";
__keypair[52]["g"] = "151372434541186843282552538489006311280";
__keypair[53] = new Hashtable();
__keypair[53]["p"] = "214831695259209379873457283984474047219";
__keypair[53]["g"] = "142779734101082913042458997679824269680";
__keypair[54] = new Hashtable();
__keypair[54]["p"] = "297789483624666180806783372425615253147";
__keypair[54]["g"] = "118614343931261714388601282381473283870";
__keypair[55] = new Hashtable();
__keypair[55]["p"] = "298407644354555434173309491375124217607";
__keypair[55]["g"] = "157411868220115355539896148639935221788";
__keypair[56] = new Hashtable();
__keypair[56]["p"] = "223686135004869104308906687080422409059";
__keypair[56]["g"] = "132792830809248629451738968246459936017";
__keypair[57] = new Hashtable();
__keypair[57]["p"] = "336409215236675031613895039793301044563";
__keypair[57]["g"] = "101428943051053853428798854850955825950";
__keypair[58] = new Hashtable();
__keypair[58]["p"] = "208293494905953626005375791123225408683";
__keypair[58]["g"] = "123082973160796264569454797650504605460";
__keypair[59] = new Hashtable();
__keypair[59]["p"] = "178759386955332091678205113877365623323";
__keypair[59]["g"] = "166155894279539474247433094029510109079";
__keypair[60] = new Hashtable();
__keypair[60]["p"] = "310109680583958528192172586698177315619";
__keypair[60]["g"] = "145383882594316534981330613282008777781";
__keypair[61] = new Hashtable();
__keypair[61]["p"] = "195553579865417705203900790656117392827";
__keypair[61]["g"] = "109013905201032907043043756376605985699";
__keypair[62] = new Hashtable();
__keypair[62]["p"] = "276754046563945073553804715458190201319";
__keypair[62]["g"] = "113936181592384822143932399147217656914";
__keypair[63] = new Hashtable();
__keypair[63]["p"] = "308048381437761886765073692292644713947";
__keypair[63]["g"] = "129231825837176496637981717023546360387";
__keypair[64] = new Hashtable();
__keypair[64]["p"] = "171565638797110910775185881250745221243";
__keypair[64]["g"] = "147492477303864323602161423043381755721";
__keypair[65] = new Hashtable();
__keypair[65]["p"] = "339375126178961889308938581730686563627";
__keypair[65]["g"] = "152691799259369994897221587070743381593";
__keypair[66] = new Hashtable();
__keypair[66]["p"] = "334721416748820255637011854584322659007";
__keypair[66]["g"] = "126720465618641384299165454148461321191";
__keypair[67] = new Hashtable();
__keypair[67]["p"] = "276213933844205924518956459351712683587";
__keypair[67]["g"] = "106376825196120551766220379058322534496";
__keypair[68] = new Hashtable();
__keypair[68]["p"] = "239144039385315861984358245560718631307";
__keypair[68]["g"] = "146098274452133970694256792179638767851";
__keypair[69] = new Hashtable();
__keypair[69]["p"] = "325525662276875279945800268374182836987";
__keypair[69]["g"] = "168441090586750872018402623739623103747";
__keypair[70] = new Hashtable();
__keypair[70]["p"] = "231572471269720358572206707637025834499";
__keypair[70]["g"] = "93273588904613602689013227617534202739";
__keypair[71] = new Hashtable();
__keypair[71]["p"] = "319445955692119855256107812237184178279";
__keypair[71]["g"] = "105217761286675486451567406309883187563";
__keypair[72] = new Hashtable();
__keypair[72]["p"] = "174179619984506317332528375328626628643";
__keypair[72]["g"] = "153490004360924367645966795596469969150";
__keypair[73] = new Hashtable();
__keypair[73]["p"] = "225062201176423798477087313958961730027";
__keypair[73]["g"] = "100665318813403999437809046219265368966";
__keypair[74] = new Hashtable();
__keypair[74]["p"] = "232769310238857981599145730594708342247";
__keypair[74]["g"] = "107863816401777577009805629127223560999";
__keypair[75] = new Hashtable();
__keypair[75]["p"] = "216437145755989802331011198083162459427";
__keypair[75]["g"] = "154094977142061920793637654728808928049";
__keypair[76] = new Hashtable();
__keypair[76]["p"] = "298383496323973059374687762934151024307";
__keypair[76]["g"] = "155405366750055336887084184844674970529";
__keypair[77] = new Hashtable();
__keypair[77]["p"] = "184489069021173433032769633685315249843";
__keypair[77]["g"] = "166921167869415113879587469723652372926";
__keypair[78] = new Hashtable();
__keypair[78]["p"] = "177190853131473420925582176913976254799";
__keypair[78]["g"] = "168038325156991710814681508219454992827";
__keypair[79] = new Hashtable();
__keypair[79]["p"] = "205824415892460203378503164398599221299";
__keypair[79]["g"] = "158479793048631371664215475734423872824";
__keypair[80] = new Hashtable();
__keypair[80]["p"] = "310467034207132630897862060217159015203";
__keypair[80]["g"] = "167912605291386305583770985067227249877";
__keypair[81] = new Hashtable();
__keypair[81]["p"] = "337090272673948678626258027706924885103";
__keypair[81]["g"] = "133390477911650395454977142453438243674";
__keypair[82] = new Hashtable();
__keypair[82]["p"] = "231767878283542103074932628630145347559";
__keypair[82]["g"] = "91199575058970332604576888869977703275";
__keypair[83] = new Hashtable();
__keypair[83]["p"] = "281557701741886255508972876651693320703";
__keypair[83]["g"] = "127032092125927821322634855123762117973";
__keypair[84] = new Hashtable();
__keypair[84]["p"] = "230586263737202506797795917938147399487";
__keypair[84]["g"] = "107612376670566766547984582822768075098";
__keypair[85] = new Hashtable();
__keypair[85]["p"] = "324777641689987242019983153644183126807";
__keypair[85]["g"] = "108729533878915200968814283720731777368";
__keypair[86] = new Hashtable();
__keypair[86]["p"] = "187180239432083506882908818891981115839";
__keypair[86]["g"] = "148215844271871494817863376333173222009";
__keypair[87] = new Hashtable();
__keypair[87]["p"] = "178903418953048525015388734244727835907";
__keypair[87]["g"] = "155649480723302197450400535676296651140";
__keypair[88] = new Hashtable();
__keypair[88]["p"] = "253444688577863674594310675876226095099";
__keypair[88]["g"] = "132147600679240230793154987289868449398";
__keypair[89] = new Hashtable();
__keypair[89]["p"] = "292224961402354217519635677362571707099";
__keypair[89]["g"] = "134381915254393424644896320203469170289";
__keypair[90] = new Hashtable();
__keypair[90]["p"] = "299749716961824918280862708245964613407";
__keypair[90]["g"] = "147938798707717738845052783960937886744";
__keypair[91] = new Hashtable();
__keypair[91]["p"] = "336653863040686838747291737098289269539";
__keypair[91]["g"] = "123319761376079175252713197087296999693";
__keypair[92] = new Hashtable();
__keypair[92]["p"] = "229277519866849274992721132181666232619";
__keypair[92]["g"] = "151290270649675692109259004812171107344";
__keypair[93] = new Hashtable();
__keypair[93]["p"] = "174020873132192704302067924588460302103";
__keypair[93]["g"] = "109099367796995629277305495298125151265";
__keypair[94] = new Hashtable();
__keypair[94]["p"] = "245965024355197001529032600791398358547";
__keypair[94]["g"] = "85362348810648375285062705836916965802";
__keypair[95] = new Hashtable();
__keypair[95]["p"] = "315400205282292073452291230876033194643";
__keypair[95]["g"] = "144696745842439667924740953994776045218";
__keypair[96] = new Hashtable();
__keypair[96]["p"] = "192587442467945973846727424101678758959";
__keypair[96]["g"] = "151013225006293773622184074850686789039";
__keypair[97] = new Hashtable();
__keypair[97]["p"] = "242953583122716007405855987769296914983";
__keypair[97]["g"] = "157758075432849986071231345437669629080";
__keypair[98] = new Hashtable();
__keypair[98]["p"] = "277410877977562742415359207765439773867";
__keypair[98]["g"] = "111249869128411886296141983394434342445";
__keypair[99] = new Hashtable();
__keypair[99]["p"] = "217883897631263548360699616033011149263";
__keypair[99]["g"] = "142336711322452906346271504413408149952";
}
public static Hashtable genRandomKeyPair()
{
return __keypair[__rand.Next(100)];
}
}
}