常用的CC++语言大数运算软件包有哪些?

Python012

常用的CC++语言大数运算软件包有哪些?,第1张

为了解决大数运算的问题,世界各国的软件开发人员和研究学者都进行了很多的研究和实践。近年来,越来越多的开发人员开始重视软件工程的作用,为了减少重复劳动,提高软件的质量和代码复用,许多优秀的大数运算库随之出现。下面对几种优秀的大数库进行简单的介绍:

GMP:GMP大数库是GNU项目的一部分,诞生于1991年。作为一个任意精度的大整数运算库,它包括了任意精度的带符号整数、有理数、浮点数的各种基本运算操作。它是一个c语言的库,但是官方提供了c++的包装类,主要的应用方向是密码学、网络安全、代数系统、计算科学等。GMP库的运行速度非常快的,它的官方网站上称自己为地球上最快的大数库,但是GMP库所提供的只是数学运算功能,并没有密码学相关的高级功能。

Miracl:Miracl库是Shamus Software Ltd开发的一个大数库,它的使用许可针对教育科学研究或者非商业目的地应用是免费的。在应用上它是一个c语言的库,同时提供了几个较为简单的c++包装类。在功能上它不但提供了高精度的大整数和分数的各种数学运算操作而且提供了很多密码学算法中的功能模块,如SHA、AES、DSA等中的一些底层操作。最为特别的是它还提供了很多椭圆曲线密码体制中的底层功能模块。由于Miracl库的内部实现采用了很多的汇编层的代码,故运行速度也非常快。

Crypto++:Crypto++库是一个开源项目,也是免费使用的。由于它是一个纯c++实现的库,所以应用非常的方便,库的结构清晰,使用方便,文档也很健全。Crypto++库提供了很多密码学算法的实现。

OpenSSL:OpenSSL是一个开放源代码的实现了SSL及相关加密技术的软件包,由加拿大的Eric Yang等发起编写的。它可以实现消息摘要、文件的加密和解密、数字证书、数字签名和随机数字等。 它的主要用途并不是大数库,而是SSL协议的实现和应用,但是其中也有一些关于大整数的功能,此外它也是基于c语言。

windows api是基于WINDOWS操作系统框架下做应用软件的一种函数调用方式,也就是说你只能看到它的函数名和参数,但是看不到函数内部的程序。你根据MSDN上的描述去调用相应功能的API函数来完成你的相关应用函数。当然,在使用VC++时有比调用API更方便的方法,那就是使用相关的类。