資源簡介
C++ 超大整數類 及RSA加密
功能特別強大的適用于非負整數的大整數類
并用于RSA加密解密

代碼片段和文件信息
#include?“StdAfx.h“
#include?“BigInteger.h“
const?int?BigInteger::maxLength?=?512;
const?int?BigInteger::primesBelow2000[]?=?{
2?3?5?7?11?13?17?19?23?29?31?37?41?43?47?53?59?61?67?71?73?79?83?89?97
101?103?107?109?113?127?131?137?139?149?151?157?163?167?173?179?181?191?193?197?199
211?223?227?229?233?239?241?251?257?263?269?271?277?281?283?293
307?311?313?317?331?337?347?349?353?359?367?373?379?383?389?397
401?409?419?421?431?433?439?443?449?457?461?463?467?479?487?491?499
503?509?521?523?541?547?557?563?569?571?577?587?593?599
601?607?613?617?619?631?641?643?647?653?659?661?673?677?683?691
701?709?719?727?733?739?743?751?757?761?769?773?787?797
809?811?821?823?827?829?839?853?857?859?863?877?881?883?887
907?911?919?929?937?941?947?953?967?971?977?983?991?997
1009?1013?1019?1021?1031?1033?1039?1049?1051?1061?1063?1069?1087?1091?1093?1097
1103?1109?1117?1123?1129?1151?1153?1163?1171?1181?1187?1193
1201?1213?1217?1223?1229?1231?1237?1249?1259?1277?1279?1283?1289?1291?1297
1301?1303?1307?1319?1321?1327?1361?1367?1373?1381?1399
1409?1423?1427?1429?1433?1439?1447?1451?1453?1459?1471?1481?1483?1487?1489?1493?1499
1511?1523?1531?1543?1549?1553?1559?1567?1571?1579?1583?1597
1601?1607?1609?1613?1619?1621?1627?1637?1657?1663?1667?1669?1693?1697?1699
1709?1721?1723?1733?1741?1747?1753?1759?1777?1783?1787?1789
1801?1811?1823?1831?1847?1861?1867?1871?1873?1877?1879?1889
1901?1907?1913?1931?1933?1949?1951?1973?1979?1987?1993?1997?1999?};
BigInteger::BigInteger(void)
:?dataLength(0)?data(0)
{
data?=?new?unsigned?int[maxLength];
memset(data?0?maxLength?*?sizeof(unsigned?int));
dataLength?=?1;
}
BigInteger::BigInteger(__int64?value)
{
data?=?new?unsigned?int[maxLength];
memset(data?0?maxLength?*?sizeof(unsigned?int));
__int64?tempVal?=?value;
//?copy?bytes?from?__int64?to?BigInteger?without?any?assumption?of
//?the?length?of?the?__int64?datatype
dataLength?=?0;
while?(value?!=?0?&&?dataLength? {
data[dataLength]?=?(unsigned?int)(value?&?0xFFFFFFFF);
value?=?value?>>?32;
dataLength++;
}
if?(tempVal?>?0)?????????//?overflow?check?for?+ve?value
{
if?(value?!=?0?||?(data[maxLength?-?1]?&?0x80000000)?!=?0)
assert(false);
}
else?if?(tempVal?0)????//?underflow?check?for?-ve?value
{
if?(value?!=?-1?||?(data[dataLength?-?1]?&?0x80000000)?==?0)
assert(false);
}
if?(dataLength?==?0)
dataLength?=?1;
}
BigInteger::BigInteger(unsigned?__int64?value)
{
data?=?new?unsigned?int[maxLength];
memset(data?0?maxLength?*?sizeof(unsigned?int));
//?copy?bytes?from?u__int64?to?BigInteger?without?any?assumption?of
//?the?length?of?th
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????25567??2009-12-23?13:47??CppRsaTest\CppRsaTest\BigInteger.cpp
?????文件???????2060??2009-12-23?13:29??CppRsaTest\CppRsaTest\BigInteger.h
?????文件????????983??2011-02-24?23:59??CppRsaTest\CppRsaTest\CppRsaTest.cpp
?????文件???????4779??2009-12-23?02:00??CppRsaTest\CppRsaTest\CppRsaTest.vcproj
?????文件???????1858??2011-02-24?23:57??CppRsaTest\CppRsaTest\MdRSACrypto.cpp
?????文件????????545??2009-12-23?02:08??CppRsaTest\CppRsaTest\MdRSACrypto.h
?????文件???????1324??2009-12-22?14:14??CppRsaTest\CppRsaTest\ReadMe.txt
?????文件????????297??2009-12-22?14:14??CppRsaTest\CppRsaTest\stdafx.cpp
?????文件????????376??2009-12-22?14:14??CppRsaTest\CppRsaTest\stdafx.h
????....SHR???????245??2009-12-23?15:51??CppRsaTest\CppRsaTest\vssver2.scc
?????文件??????29281??2009-12-22?19:07??CppRsaTest\CppRsaTest\復件?BigInteger.cpp
?????文件???????1966??2009-12-22?19:07??CppRsaTest\CppRsaTest\復件?BigInteger.h
?????文件????????895??2009-12-22?14:14??CppRsaTest\CppRsaTest.sln
?????目錄??????????0??2011-02-25?00:01??CppRsaTest\CppRsaTest
?????目錄??????????0??2011-02-25?00:00??CppRsaTest
-----------?---------??----------?-----??----
????????????????70176????????????????????15
- 上一篇:操作系統 緩沖池 C++
- 下一篇:C++算術表達式求值(支持函數)
評論
共有 條評論