2017-02-16 201 views
-3

我注意到bcrypt的node.js Javascript包需要很多非Javascript库 - C++,Python 2.7等。为什么bcrypt需要C++和Python?

为什么需要这样做?加密需要非Javascript语言吗?

+2

看起来像node.js包只不过是python bcrypt库(它本身使用CPython模块,我猜是出于性能原因)的薄包装。正如你可以在https://stackoverflow.com/questions/14573488/error-compiling-bcrypt-node-js?rq=1的答案中看到,还有一个纯JS包可用,我想这将是一些命令幅度较慢。 – l4mpi

+1

主要是因为代码的可重用性 - 为什么人们会为所有语言编写所有加密/哈希库,更不用说测试它们的时间了,为什么到处都可以使用它?如果用C/C++编写库,那么可以在任何语言的几乎任何平台上编译和使用它,因此这些“流行”库倾向于主要用C/C++编写,并且只是得到一个包装器为您所需的语言,使其更易于界面。在bcrypt的情况下,它本质上是一个Python包装的C模块,因此是要求。 – zwer

回答

-1

像bcrypt这样的算法从来不依赖于特定的语言。所有通用语言如C,Java,Pyton,JS,PHP等等。可以被起诉来实施这样的算法。

他们为什么选择使用例如。 C而不仅仅是JS可能是因为,至少在目前可用的工具(编译器,解释器等)中,C程序比JS快得多。加密大数据集不应该是不必要的慢。