• 大小: 18KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-12
  • 语言: C/C++
  • 标签: 加密  

资源简介

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 < maxLength)
{
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


评论

共有 条评论