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

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

作者: 星星之火666 | 来源:发表于2019-07-13 13:42 被阅读0次

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

    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<vector>
    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 文件

          本文链接:https://www.haomeiwen.com/subject/uinpkctx.html