摘要:氯化鈉,鹽是一個易用高速的庫,可用于網絡通訊加密揭秘簽名等應用。不過在安全性易用性和速度上都有所提升。簽名功能已經移植,但還沒有公布。密鑰生成的過程可能安全性稍差,這是因為使用了偽隨機數生成器取決于框架的實現。
NaCl (氯化鈉,鹽) 是一個易用高速的庫,可用于網絡通訊、加密揭秘、簽名等應用。NaCl 的目標是提供構建保密工具所需要的核心功能。當然,已經有其他庫提供這方面的功能。不過 NaCl 在安全性、易用性和速度上都有所提升。
官方網站
作者 D. J. Bernstein
Python 和 C 實現NaCl 最初基于 Python 實現,后來移植到了 C,不久提供了 C++ 綁定。C 代碼可以通過 http://nacl.cace-project.eu/ 獲取。
C 代碼寫得非常直截了當,移植到 C# 和 JavaScript 很容易。
查看 NaCl/Windows 了解在 Windows 上編譯 NaCl 的信息。
編譯動態共享庫請參閱 NaCl/Shared。 Debian/Ubuntu 的用戶可以看下這個倉庫: http://apt.ucis.nl/。
編譯 reference 實現如果需要編譯平臺無關的庫,建議僅使用 reference 實現。你需要在編譯前打上以下補丁:
*** do.org 2011-02-27 17:47:19.997126841 +0100 --- do 2011-02-27 18:05:53.837122146 +0100 *************** *** 168,169 **** --- 168,173 ---- implementationdir=`dirname $doth` + implementation=`basename "$implementationdir"` + if [ "$implementation" != "ref" -a "$implementation" != "ref2" ]; then + continue; + fi opi=`echo "$implementationdir" | tr ./- ___`C# 實現
C# 上有一個部分的移植,是從原本的 C 代碼轉換過來的。源代碼和編譯好好的庫可在 http://oss.ucis.nl/nacl/ 獲取。注意不是所有的代碼都移植過來了。更準確地說,所有 curve25519xsalsa20poly1305 crypto-box 功能依賴的東西都移植過來了。簽名功能已經移植,但還沒有公布。
大部分移植代碼應該和 C 版本一樣安全。密鑰生成的過程可能安全性稍差,這是因為使用了偽隨機數生成器(取決于 .Net 框架的實現)。C# 代碼比 C 代碼速度慢些,主要是因為 C 代碼為特定硬件做作了優化。
另一個 C# 的移植 作為 GbDns 的一部分發布。
JavaScript 實現這是另一個部分的移植,基于 C# 代碼。這個移植盡可能地和原代碼保持一致。你可以在 http://oss.ucis.nl/nacl/js/ 獲取代碼,那里還有一些用例。注意目前僅僅實現了 curve25519xsalsa20poly1305 密鑰生成,但是進一步的移植很容易。
由于使用了偽隨機數生成器,密鑰生成過程的安全性會比原本的代碼差一點。同時,瀏覽器很容易受到跨站攻擊。由于代碼是動態解釋執行的,因此速度比原本的代碼要慢很多。它在 Google Chrome 中表現最佳,其次是 Firefox,在 MSIE 中慢出翔了。但是不管怎么說,它可以工作!
PHP 綁定一個不完整的 PHP 擴展可以從 http://oss.ucis.nl/hg/php_nacl/ 獲取。Debian/Ubuntu 已經有打好的包了: http://apt.ucis.nl/ (php5-nacl)
其他實現和綁定Python: http://mojzis.com/software/python-nacl/
另一個部分 JavaScript 實現: https://github.com/chriskuehl/nacl.js/
Java 實現 (可以在 Android 上工作) https://github.com/neilalexander/jnacl
最初的 C 實現: http://nacl.cace-project.eu/
原文 NaCl
翻譯 SegmentFault
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/11124.html
摘要:第層網絡的一個值得注意的示例是以太網,其中表示為子層。與其他方案相比,相對容易安裝和配置。與不同,不使用網絡。網絡策略是其最受追捧的功能之一。 本文將在介紹技術原理和相應術語的基礎上,再集中探索與詳細對比目前最流行的CNI插件:Flannel、Calico、Weave和Canal,對比介紹它們的原理、使用方法、適用場景和優缺點等。 showImg(https://segmentfaul...
摘要:第層網絡的一個值得注意的示例是以太網,其中表示為子層。與其他方案相比,相對容易安裝和配置。與不同,不使用網絡。網絡策略是其最受追捧的功能之一。 本文將在介紹技術原理和相應術語的基礎上,再集中探索與詳細對比目前最流行的CNI插件:Flannel、Calico、Weave和Canal,對比介紹它們的原理、使用方法、適用場景和優缺點等。 showImg(https://segmentfaul...
閱讀 2623·2023-04-26 00:07
閱讀 2432·2021-11-15 11:37
閱讀 639·2021-10-19 11:44
閱讀 2164·2021-09-22 15:56
閱讀 1717·2021-09-10 10:50
閱讀 1497·2021-08-18 10:21
閱讀 2565·2019-08-30 15:53
閱讀 1630·2019-08-30 11:11