一个适用于非对称加、解密的大数运算的 dll 文件

下载链接:百度网盘链接 1:提取码: hm77
链接 2

  • 检测文件哈希值

    • 检测方法:使用网址(http://www.atool9.com/file_hash.php)检测
    • 检测数据:
1、开发版 dll:
md5: 8567CC03EB71814DE99A85619C8A5A08
sha2-256: 731AC9DC7F494B0F528C31D23CCB4F6EBE9C49DD51F5161E21DBCAB09EE1A401
lib:
md5: 0CD20D7A9AFCBB2884FE263251BB52E4
2、debug 版 dll:
md5: 8B8A40AD57118D019AE7B76D75547D1C
sha2-256: 29070B345860B6D3790A853B6E8965EAD50046E1976DD2912B0075DCF25D2263
lib:
md5: 69438DF1AB1E177DA7A1FF60692CE021
  • 支持平台:win10 x64,其他未测试,但必须是 64 位操作系统
  • 常见注意:debug 版 dll 应应用于 debug 版 测试程序,开发版 dll 应应用于 release 版 测试 程序,程序才能正确运行。
  • 使用要求:
    • 1、大整数:{{0,9,5,2,7,4,0,2},10} ,表示:10 进制:+9527402,第一个数字表示 正(0) 或 负(1),最后一个数字表示 多少进制,支持 任意进制 (进制数 大于等于 2);
    • 2、大整数 0 为:{{0,0},?},而不是 {{1,0},?},使用时 '?' 用具体进制数替换;
    • 3、取余(%)运算符:模数是任何时候都大于 0 的大整数;
    • 4、除法(/)运算符:被除数 / 除数 == 商 ,此商为向 0 取整的(正或负的)大整数;
      • 除法举例如:-227/92==-2 、227/92==2
      • 等价于 python 代码: int(-227/92)==-2 、int(227/92)==2
  • 应用举例:
    test.cpp
#include
using namespace std;
#include "bigNumDll.h"

int main()
{
    // 10 进制,arr1=9527402,arr2=-227,arr3=92,arr4=-4256 以此类推
    bigNumber arr1 = { {0,9,5,2,7,4,0,2} ,10 },
        arr2 = { {1,2,2,7},10 }, arr3 = { {0,9,2},10 },
        arr4 = { {1,4,2,5,6} ,10 }, arr5 = { {1,9,5,7},10 },
        arr6 = { {0,9,2,0,6} ,10 }, arr8 = { {0,1,5,3} ,10 }, arr7 = { {0,0},10 };

    bigNumber arr(10);

    // 1000 进制
    //bigNumber arr1 = { {0,999,587,267,237,784,10,2},1000 },
    //  arr2 = { {1,222,562,957} ,1000 }, arr3 = { {0,899,82},1000 },
    //  arr4 = { {1,478,212,675,96},1000 }, arr5 = { {1,998,5,709} ,1000 },
    //  arr6 = { {0,990,212,20,36} ,1000 }, arr8 = { {0,981,85,3},1000 }, arr7 = { {0,0},1000 };

    //bigNumber arr(1000);

    // 10**9 进制,默认进制,所以 与上面的 有所不同
    //bigNumber arr1{ {0,98765432,12345678} },
    //  arr2 = { {1,12312345} }, arr3 = { {0,87687634,234567} },
    //  arr4 = { {1,89898989} }, arr5 = { {1,45645612} },
    //  arr6 = { {0,98984556} }, arr7 = { {0,0} }, arr8 = { {0,45629831} };

    //bigNumber arr;

    // 混合加、减、乘、除、取余
    //arr = arr1 * (arr7 - arr2 - arr3) / (arr6 - arr4) + arr5 * arr5 * arr4 % arr3 - arr1 % arr6;
    //arr = arr1 / arr8 * (arr2 - arr3) * (arr6 - arr4) - arr1 % arr6 + arr6 % arr3;
    //arr = arr1 * arr2 + arr3 % (arr7 - arr4) - arr5 / (arr8 - arr6) / arr3 * arr2;
    //arr = arr1 / (arr3 - arr2) % (arr7 - arr4) * arr6 + arr8;
    arr = arr1 + arr2 - arr3 * arr4 / arr5 % arr6;
    arr.getvalue();
}
  • 应用例子下载:见 上述 百度网盘链接 1 中 test release 和 test debug。

以上 dll 文件是经过测试合格的,但有可能有微小的错误,另外本文章可能有叙述不全的地方,欢迎评论提问、指正,帮助我更改错误,共同进步,万分感谢

你可能感兴趣的:(一个适用于非对称加、解密的大数运算的 dll 文件)